1. 18 8月, 2017 4 次提交
  2. 10 8月, 2017 4 次提交
  3. 09 8月, 2017 6 次提交
  4. 01 8月, 2017 19 次提交
  5. 21 7月, 2017 3 次提交
    • J
      iwlwifi: mvm: defer setting IWL_MVM_STATUS_IN_HW_RESTART · bf8b286f
      Johannes Berg 提交于
      A hardware/firmware error may happen at any point in time. In
      particular, it might happen while mac80211 is in the middle of
      a flow. We observed the following situation:
       * mac80211 is in authentication flow, in ieee80211_prep_connection()
       * iwlwifi firmware crashes, but no error can be reported at this
         precise point (mostly because the driver method is void, but even
         if it wasn't we'd just shift to a race condition)
       * mac80211 continues the flow, trying to add the AP station
       * iwlwifi has already set its internal restart flag, and so thinks
         that adding the station is part of the restart and already set up,
         so it uses the information that's supposed to already be in the
         struct
      
      This can happen with any flow in mac80211 and with any information
      we try to preserve across hardware restarts.
      
      To fix this, only set a new HW_RESTART_REQUESTED flag and translate
      that to IN_HW_RESTART once mac80211 actually starts the restart by
      calling our start() method. As a consequence, any mac80211 flow in
      progress at the time of the restart will properly finish (certainly
      with errors), before the restart is attempted.
      
      This fixes https://bugzilla.kernel.org/show_bug.cgi?id=195299.
      Reported-by: Ndjagoo <dev@djagoo.io>
      Reported-by: NŁukasz Siudut <lsiudut@gmail.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      bf8b286f
    • L
      iwlwifi: mvm: handle IBSS probe_queue in a few missing places · 7b758a11
      Luca Coelho 提交于
      When IBSS was implemented for DQA, we missid a few places where it
      should be handled in the same way as AP.
      
      Fixes: ee48b722 ("iwlwifi: mvm: support ibss in dqa mode")
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      7b758a11
    • E
      iwlwifi: mvm: fix a NULL pointer dereference of error in recovery · 61dd8a8a
      Emmanuel Grumbach 提交于
      Sometimes, we can have an firmware crash while trying to
      recover from a previous firmware problem.
      When that happens, lots of things can go wrong. For example
      the stations don't get added properly to mvm->fw_id_to_mac_id.
      
      Mac80211 tries to stop A-MPDU upon reconfig but in case of
      a firmware crash we will bail out fairly early and in the
      end, we won't delete the A-MPDU Rx timeout.
      When that timer expired after a double firmware crash,
      we end up dereferencing mvm->fw_id_to_mac_id[sta_id]
      which is NULL.
      
      Fixes: 10b2b201 ("iwlwifi: mvm: add infrastructure for tracking BA session in driver")
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      61dd8a8a
  6. 30 6月, 2017 4 次提交
    • E
      iwlwifi: pcie: wait longer after device reset · 099a628b
      Emmanuel Grumbach 提交于
      The newest devices need a longer time to reset because of
      their more complex hardware. Wait 5ms after device reset.
      Consolidate all the places that reset the device in the
      PCIe transport to avoid future bugs.
      
      While at it, unify the flow to use set_bit instead of full
      write as requested by the hardware designers.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      099a628b
    • J
      iwlwifi: mvm: quietly accept non-sta disassoc frames · 51da3d8b
      Johannes Berg 提交于
      When a station that's not associated sends a data frame (e.g. an NDP)
      hostapd will respond with a disassoc frame, telling it that it's not
      associated. The station might also not be authenticated, in which case
      there will not be a station entry for it, and as a result we need to
      accept such frames without a station.
      
      Fixes: 3ee0f0e2 ("iwlwifi: mvm: fix DQA AP mode station assumption")
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      51da3d8b
    • L
      iwlwifi: mvm: update rx statistics cmd api · 678d9b6d
      Liad Kaufman 提交于
      The API has changed - update the code.
      Signed-off-by: NLiad Kaufman <liad.kaufman@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      678d9b6d
    • J
      iwlwifi: mvm: remove DQA non-STA client mode special case · 6e464963
      Johannes Berg 提交于
      When we get a non-STA frame to transmit in client mode, we try to use
      the IWL_MVM_DQA_BSS_CLIENT_QUEUE queue (queue #4). However, at this
      point, the queue might not be allocated at all, causing warnings. The
      scenario on which this happened was a race condition between mac80211
      and our queue allocation work:
       * mac80211 sends auth
       * we stop mac80211 queues to allocate a hw queue
       * authentication is aborted
       * we allocate HW queue and start mac80211 queues
       * mac80211 removes station
       * mac80211 hands us the auth frame from the pending queue
      
      At this point, since mac80211 has already removed the station, we try
      to transmit the frame through this special non-station case on queue
      4 anyway.
      
      In order to really use it properly, we'd have to again go through the
      hw queue allocation work, and attach it to a station, etc. In this
      case that isn't possible (there's no station anymore), but if this
      special case were needed, then we'd have to do it this way.
      
      However, the special case is documented to exist for TDLS, but can't
      trigger there because the TDLS setup frames etc. are normal to-DS
      frames going to the peer through the AP. Testing also confirms that
      this code path isn't triggered in TDLS.
      
      Therefore, remove the code path to avoid using an unused queue. The
      erroneous frame described above will still be transmitted on the AUX
      queue, but arguably that's a mac80211 problem, which will eventually
      be fixed by moving everything there to TXQs.
      
      Fixes: e3118ad7 ("iwlwifi: mvm: support tdls in dqa mode")
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      6e464963