1. 28 9月, 2020 3 次提交
  2. 18 9月, 2020 1 次提交
  3. 31 7月, 2020 2 次提交
  4. 30 7月, 2020 1 次提交
  5. 31 5月, 2020 6 次提交
  6. 20 3月, 2020 1 次提交
  7. 14 2月, 2020 1 次提交
  8. 07 2月, 2020 3 次提交
  9. 16 12月, 2019 1 次提交
  10. 01 10月, 2019 1 次提交
  11. 11 9月, 2019 2 次提交
    • J
      mac80211: IBSS: send deauth when expiring inactive STAs · 4b08d1b6
      Johannes Berg 提交于
      When we expire an inactive station, try to send it a deauth. This
      helps if it's actually still around, and just has issues with
      beacon distribution (or we do), and it will not also remove us.
      Then, if we have shared state, this may not be reset properly,
      causing problems; for example, we saw a case where aggregation
      sessions weren't removed properly (due to the TX start being
      offloaded to firmware and it relying on deauth for stop), causing
      a lot of traffic to get lost due to the SN reset after remove/add
      of the peer.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      Link: https://lore.kernel.org/r/20190830112451.21655-9-luca@coelho.fiSigned-off-by: NJohannes Berg <johannes.berg@intel.com>
      4b08d1b6
    • L
      mac80211: clear crypto tx tailroom counter upon keys enable · 624ff4b2
      Lior Cohen 提交于
      In case we got a fw restart while roaming from encrypted AP to
      non-encrypted one, we might end up with hitting a warning on the pending
      counter crypto_tx_tailroom_pending_dec having a non-zero value.
      
      The following comment taken from net/mac80211/key.c explains the rational
      for the delayed tailroom needed:
      
      	/*
      	* The reason for the delayed tailroom needed decrementing is to
      	* make roaming faster: during roaming, all keys are first deleted
      	* and then new keys are installed. The first new key causes the
      	* crypto_tx_tailroom_needed_cnt to go from 0 to 1, which invokes
      	* the cost of synchronize_net() (which can be slow). Avoid this
      	* by deferring the crypto_tx_tailroom_needed_cnt decrementing on
      	* key removal for a while, so if we roam the value is larger than
      	* zero and no 0->1 transition happens.
      	*
      	* The cost is that if the AP switching was from an AP with keys
      	* to one without, we still allocate tailroom while it would no
      	* longer be needed. However, in the typical (fast) roaming case
      	* within an ESS this usually won't happen.
      	*/
      
      The next flow lead to the warning eventually reported as a bug:
      1. Disconnect from encrypted AP
      2. Set crypto_tx_tailroom_pending_dec = 1 for the key
      3. Schedule work
      4. Reconnect to non-encrypted AP
      5. Add a new key, setting the tailroom counter = 1
      6. Got FW restart while pending counter is set ---> hit the warning
      
      While on it, the ieee80211_reset_crypto_tx_tailroom() func was merged into
      its single caller ieee80211_reenable_keys (previously called
      ieee80211_enable_keys). Also, we reset the crypto_tx_tailroom_pending_dec
      and remove the counters warning as we just reset both.
      Signed-off-by: NLior Cohen <lior2.cohen@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      Link: https://lore.kernel.org/r/20190830112451.21655-7-luca@coelho.fiSigned-off-by: NJohannes Berg <johannes.berg@intel.com>
      624ff4b2
  12. 26 7月, 2019 4 次提交
  13. 19 6月, 2019 1 次提交
  14. 14 6月, 2019 1 次提交
  15. 24 5月, 2019 1 次提交
    • M
      {nl,mac}80211: allow 4addr AP operation on crypto controlled devices · 33d915d9
      Manikanta Pubbisetty 提交于
      As per the current design, in the case of sw crypto controlled devices,
      it is the device which advertises the support for AP/VLAN iftype based
      on it's ability to tranmsit packets encrypted in software
      (In VLAN functionality, group traffic generated for a specific
      VLAN group is always encrypted in software). Commit db3bdcb9
      ("mac80211: allow AP_VLAN operation on crypto controlled devices")
      has introduced this change.
      
      Since 4addr AP operation also uses AP/VLAN iftype, this conditional
      way of advertising AP/VLAN support has broken 4addr AP mode operation on
      crypto controlled devices which do not support VLAN functionality.
      
      In the case of ath10k driver, not all firmwares have support for VLAN
      functionality but all can support 4addr AP operation. Because AP/VLAN
      support is not advertised for these devices, 4addr AP operations are
      also blocked.
      
      Fix this by allowing 4addr operation on devices which do not support
      AP/VLAN iftype but can support 4addr AP operation (decision is based on
      the wiphy flag WIPHY_FLAG_4ADDR_AP).
      
      Cc: stable@vger.kernel.org
      Fixes: db3bdcb9 ("mac80211: allow AP_VLAN operation on crypto controlled devices")
      Signed-off-by: NManikanta Pubbisetty <mpubbise@codeaurora.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      33d915d9
  16. 26 4月, 2019 3 次提交
  17. 22 2月, 2019 1 次提交
  18. 11 2月, 2019 1 次提交
  19. 08 2月, 2019 3 次提交
  20. 18 12月, 2018 1 次提交
  21. 05 12月, 2018 1 次提交
    • E
      mac80211: fix deauth TX when we disconnect · f6c7f03f
      Emmanuel Grumbach 提交于
      The iTXQs stop/wake queue mechanism involves a whole bunch
      of locks and this is probably why the call to
      ieee80211_wake_txqs is deferred to a tasklet when called from
      __ieee80211_wake_queue.
      
      Another advantage of that is that ieee80211_wake_txqs might
      call the wake_tx_queue() callback and then the driver may
      call mac80211 which will call it back in the same context.
      
      The bug I saw is that when we send a deauth frame as a
      station we do:
      
      flush(drop=1)
      tx deauth
      flush(drop=0)
      
      While we flush we stop the queues and wake them up
      immediately after we finished flushing. The problem here is
      that the tasklet that de-facto enables the queue may not have
      run until we send the deauth. Then the deauth frame is sent
      to the driver (which is surprising by itself), but the driver
      won't get anything useful from ieee80211_tx_dequeue because
      the queue is stopped (or more precisely because
      vif->txqs_stopped[0] is true).
      Then the deauth is not sent. Later on, the tasklet will run,
      but that'll be too late. We'll already have removed all the
      vif etc...
      
      Fix this by calling ieee80211_wake_txqs synchronously if we
      are not waking up the queues from the driver (we check the
      reason to determine that). This makes the code really
      convoluted because we may call ieee80211_wake_txqs from
      __ieee80211_wake_queue. The latter assumes that
      queue_stop_reason_lock has been taken by the caller and
      ieee80211_wake_txqs may release the lock to send the frames.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      f6c7f03f
  22. 12 10月, 2018 1 次提交