1. 04 9月, 2014 5 次提交
  2. 21 7月, 2014 2 次提交
  3. 08 7月, 2014 1 次提交
  4. 25 6月, 2014 1 次提交
  5. 13 5月, 2014 1 次提交
  6. 14 4月, 2014 1 次提交
  7. 13 4月, 2014 2 次提交
    • M
      iwlwifi: mvm: Use RCU_INIT_POINTER(x, NULL) · c531c771
      Monam Agarwal 提交于
      rcu_assign_pointer() ensures that the initialization of a structure is
      carried out before storing a pointer to that structure. However, in the
      case that NULL is assigned there's no structure to initialize so using
      RCU_INIT_POINTER instead is safe and more efficient.
      Signed-off-by: NMonam Agarwal <monamagarwal123@gmail.com>
      [rewrite commit log]
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      c531c771
    • E
      iwlwifi: mvm: don't set AP STA to EINVAL · d13c8dca
      Emmanuel Grumbach 提交于
      Now that mac80211 calls pre_rcu_remove and we set the
      fw_id_to_mac_id pointer to -ENOENT before the station is
      removed, we don't need to set fw_id_to_mac_id to -EINVAL
      when the station is really removed.
      Leave fw_id_to_mac_id to be -ENOENT which will let the
      drain worker (iwl_mvm_sta_drained_wk) know that this station
      is not to be drained.
      We don't need to drain this station since it is our AP in
      managed mode and we flush all its frames synchronously
      anyway.
      
      Setting the AP station to -EINVAL could lead to confusion
      since internal stations are also reserved with -EINVAL,
      this confusion showed up in the logs as:
      
      Drained sta 0, but it is internal?
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      d13c8dca
  8. 16 3月, 2014 1 次提交
  9. 12 3月, 2014 1 次提交
  10. 07 2月, 2014 1 次提交
  11. 04 2月, 2014 2 次提交
  12. 31 1月, 2014 1 次提交
  13. 01 1月, 2014 1 次提交
  14. 18 12月, 2013 2 次提交
  15. 16 12月, 2013 1 次提交
    • J
      iwlwifi: mvm: use pre-RCU-sync sta removal operation · 1ddbbb0c
      Johannes Berg 提交于
      iwlmvm relies on the current mac80211 behaviour of allowing
      station pointers to be valid for an RCU grace period after
      returning from the sta_state() callback. To optimise these
      cases, this behaviour is going away, so make the driver use
      the new sta_pre_rcu_remove() method to clear the pointer in
      the fw_id_to_mac_id[] array.
      
      Since this may happen while the station is still present in
      the firmware, don't set the pointer to NULL but to -ENOENT
      to mark this particular case. In client mode, the station
      is kept even longer (until marking the MAC as unassociated)
      so the drain flow must take this new behavior into account.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      1ddbbb0c
  16. 10 12月, 2013 2 次提交
  17. 11 10月, 2013 3 次提交
  18. 03 10月, 2013 1 次提交
  19. 26 7月, 2013 1 次提交
    • J
      iwlwifi: mvm: fix flushing not started aggregation sessions · b6658ff8
      Johannes Berg 提交于
      When a not fully started aggregation session is destroyed
      and flushed, we get a warning, e.g.
      
        WARNING: at drivers/net/wireless/iwlwifi/pcie/tx.c:1142 iwl_trans_pcie_txq_disable+0x11c/0x160
        queue 16 not used
        Modules linked in: [...]
        Pid: 5135, comm: hostapd Tainted: G        W  O 3.5.0 #10
        Call Trace:
        wlan0: driver sets block=0 for sta 00:03:7f:10:44:d3
         [<ffffffff81036492>] warn_slowpath_common+0x72/0xa0
         [<ffffffff81036577>] warn_slowpath_fmt+0x47/0x50
         [<ffffffffa0368d6c>] iwl_trans_pcie_txq_disable+0x11c/0x160 [iwlwifi]
         [<ffffffffa03a2099>] iwl_mvm_sta_tx_agg_flush+0xe9/0x150 [iwlmvm]
         [<ffffffffa0396c43>] iwl_mvm_mac_ampdu_action+0xf3/0x1e0 [iwlmvm]
         [<ffffffffa0293ad3>] ___ieee80211_stop_tx_ba_session+0x193/0x920 [mac80211]
         [<ffffffffa0294ed8>] __ieee80211_stop_tx_ba_session+0x48/0x70 [mac80211]
         [<ffffffffa029159f>] ieee80211_sta_tear_down_BA_sessions+0x4f/0x80 [mac80211]
         [<ffffffffa028a686>] __sta_info_destroy+0x66/0x370 [mac80211]
         [<ffffffffa028abb4>] sta_info_destroy_addr_bss+0x44/0x70 [mac80211]
         [<ffffffffa02a3e26>] ieee80211_del_station+0x26/0x50 [mac80211]
         [<ffffffffa01e6395>] nl80211_del_station+0x85/0x200 [cfg80211]
      
      when a station deauthenticated from us without fully setting
      up the aggregation session.
      
      Fix this by checking the aggregation state before removing
      the hardware queue.
      
      Cc: stable@vger.kernel.org
      Reviewed-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b6658ff8
  20. 16 7月, 2013 3 次提交
  21. 12 6月, 2013 2 次提交
  22. 29 5月, 2013 1 次提交
  23. 17 5月, 2013 1 次提交
    • E
      iwlwifi: mvm: fix aggregation drain flow · e3d4bc8c
      Emmanuel Grumbach 提交于
      Move the counter for non-AMPDU frames to mvm. It is needed
      for the drain flow which happens once the ieee80211_sta has
      been freed, so keeping it in iwl_mvm_sta which is embed into
      ieee80211_sta is not a good idea.
      
      Also, since its purpose it to remove the STA in the fw only
      after all the frames for this station have exited the shared
      Tx queues, we need to decrement it in the reclaim flow. This
      flow can happen after ieee80211_sta has been removed, which
      means that we have no iwl_mvm_sta there. So we can't know
      what is the vif type. Hence, we know audit these frames for
      all the vif types.
      In order to avoid spawning sta_drained_wk all the time, we
      now check that we are in a flow in which draining might
      happen - only when mvmsta is NULL. This is better than
      previous code that would spawn sta_drained_wk all the time
      in AP mode.
      
      Cc: stable@vger.kernel.org [3.9]
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Reviewed-by: NIlan Peer <ilan.peer@intel.com>
      Reviewed-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      e3d4bc8c
  24. 04 4月, 2013 1 次提交
  25. 06 3月, 2013 2 次提交