1. 15 6月, 2018 1 次提交
  2. 23 5月, 2018 1 次提交
  3. 18 5月, 2018 5 次提交
    • J
      mac80211: allocate and fill tidstats only when needed · 0fdf1493
      Johannes Berg 提交于
      This fixes memory leaks in the case where we just have the
      station info on the stack for internal usage without sending
      it to cfg80211.
      
      Fixes: 8689c051 ("cfg80211: dynamically allocate per-tid stats for station info")
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      0fdf1493
    • A
      mac80211: fix TX aggregation stop race · 39c1134c
      Alexander Wetzel 提交于
      The mac80211 tear down code is not waiting for the driver call back.
      This can bring down the the TX path (TID) till the user manually
      reconnects. (Observed with iwldvm and enabled TX aggregation.)
      
      The race can be prevented when the ampdu_mlme worker handles the tear
      down.
      
      The race:
       * ieee80211_sta_tear_down_BA_sessions calls
         ___ieee80211_stop_tx_ba_session for all TIDs,
      
       * then cancels the ampdu_mlme worker
      
       * and cleanups the TIDs the driver already has called back for.
      
       * ieee80211_stop_tx_ba_cb will never be called for a TID if the callback
         came after the the check in ieee80211_sta_tear_down_BA_sessions.
      Signed-off-by: NAlexander Wetzel <Alexander.Wetzel@web.de>
      [johannes: "enabled" -> "blocked" and invert logic, simplify init]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      39c1134c
    • J
      cfg80211/mac80211: revert to stack allocation for sinfo · 73887fd9
      Johannes Berg 提交于
      Arend's previous patch made the sinfo structure smaller
      again by to dynamically allocating the per-tid stats
      only when needed. Thus, revert to stack allocation for
      the struct to simplify the code.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      73887fd9
    • A
      cfg80211: dynamically allocate per-tid stats for station info · 8689c051
      Arend van Spriel 提交于
      With the addition of TXQ stats in the per-tid statistics the struct
      station_info grew significantly. This resulted in stack size warnings
      due to the structure itself being above the limit for the warnings.
      
      Add an allocation function that those who want to provide per-tid
      stats should use to allocate the tid array, i.e.
      struct station_info::pertid.
      
      Cc: Toke Høiland-Jørgensen <toke@toke.dk>
      Fixes: 52539ca8 ("cfg80211: Expose TXQ stats and parameters to userspace")
      Signed-off-by: NArend van Spriel <aspriel@gmail.com>
      [johannes: fix missing BIT() and logic by removing]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      8689c051
    • B
      mac80211: mesh: fix premature update of rc stats · 1d6741d8
      Bob Copeland 提交于
      The mesh_neighbour_update() function, queued via beacon rx, can race with
      userspace creating the same station.  If the station already exists by the
      time mesh_neighbour_update() is called, the function wrongly assumes rate
      control has been initialized and calls rate_control_rate_update(), which
      in turn calls into the driver.
      
      Updating the rate control before it has been initialized can cause a
      crash in some drivers, for example this firmware crash in ath10k due
      to sta->rx_nss being 0:
      
      [ 3078.088247] mesh0: Inserted STA 5c:e2:8c:f1:ab:ba
      [ 3078.258407] ath10k_pci 0000:0d:00.0: firmware crashed! (uuid d6ed5961-93cc-4d61-803f-5eda55bb8643)
      [ 3078.258421] ath10k_pci 0000:0d:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
      [ 3078.258426] ath10k_pci 0000:0d:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 0 testmode 0
      [ 3078.258608] ath10k_pci 0000:0d:00.0: firmware ver 10.2.4.70.59-2 api 5 features no-p2p,raw-mode,mfp crc32 4159f498
      [ 3078.258613] ath10k_pci 0000:0d:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
      [ 3078.258617] ath10k_pci 0000:0d:00.0: htt-ver 2.1 wmi-op 5 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1
      [ 3078.260627] ath10k_pci 0000:0d:00.0: firmware register dump:
      [ 3078.260640] ath10k_pci 0000:0d:00.0: [00]: 0x4100016C 0x000015B3 0x009A31BB 0x00955B31
      [ 3078.260647] ath10k_pci 0000:0d:00.0: [04]: 0x009A31BB 0x00060130 0x00000008 0x00000007
      [ 3078.260652] ath10k_pci 0000:0d:00.0: [08]: 0x00000000 0x00955B31 0x00000000 0x0040F89E
      [ 3078.260656] ath10k_pci 0000:0d:00.0: [12]: 0x00000009 0xFFFFFFFF 0x009580F5 0x00958117
      [ 3078.260660] ath10k_pci 0000:0d:00.0: [16]: 0x00958080 0x0094085D 0x00000000 0x00000000
      [ 3078.260664] ath10k_pci 0000:0d:00.0: [20]: 0x409A31BB 0x0040AA84 0x00000002 0x00000001
      [ 3078.260669] ath10k_pci 0000:0d:00.0: [24]: 0x809A2B8D 0x0040AAE4 0x00000088 0xC09A31BB
      [ 3078.260673] ath10k_pci 0000:0d:00.0: [28]: 0x809898C8 0x0040AB04 0x0043F91C 0x009C6458
      [ 3078.260677] ath10k_pci 0000:0d:00.0: [32]: 0x809B66AC 0x0040AB34 0x009C6458 0x0043F91C
      [ 3078.260686] ath10k_pci 0000:0d:00.0: [36]: 0x809B2824 0x0040ADA4 0x00400000 0x00416EB4
      [ 3078.260692] ath10k_pci 0000:0d:00.0: [40]: 0x809C07D9 0x0040ADE4 0x0040AE08 0x00412028
      [ 3078.260696] ath10k_pci 0000:0d:00.0: [44]: 0x809486FA 0x0040AE04 0x00000001 0x00000000
      [ 3078.260700] ath10k_pci 0000:0d:00.0: [48]: 0x80948E2C 0x0040AEA4 0x0041F4F0 0x00412634
      [ 3078.260704] ath10k_pci 0000:0d:00.0: [52]: 0x809BFC39 0x0040AEC4 0x0041F4F0 0x00000001
      [ 3078.260709] ath10k_pci 0000:0d:00.0: [56]: 0x80940F18 0x0040AF14 0x00000010 0x00403AC0
      [ 3078.284130] ath10k_pci 0000:0d:00.0: failed to to request monitor vdev 1 stop: -108
      
      Fix this by checking whether the sta has already initialized rate control
      using the flag for that purpose.  We can also drop the unnecessary insert
      parameter here.
      Signed-off-by: NBob Copeland <bobcopeland@fb.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      1d6741d8
  4. 08 5月, 2018 10 次提交
  5. 07 5月, 2018 1 次提交
  6. 19 4月, 2018 1 次提交
  7. 29 3月, 2018 8 次提交
  8. 27 3月, 2018 1 次提交
  9. 23 3月, 2018 1 次提交
  10. 21 3月, 2018 2 次提交
  11. 16 3月, 2018 1 次提交
  12. 27 2月, 2018 5 次提交
  13. 23 2月, 2018 3 次提交
    • F
      mac80211: drop frames with unexpected DS bits from fast-rx to slow path · b323ac19
      Felix Fietkau 提交于
      Fixes rx for 4-addr packets in AP mode. These may be used for setting
      up a 4-addr link for stations that are allowed to do so.
      Signed-off-by: NFelix Fietkau <nbd@nbd.name>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      b323ac19
    • T
      mac80211: Adjust TSQ pacing shift · 36148c2b
      Toke Høiland-Jørgensen 提交于
      Since we now have the convenient helper to do so, actually adjust the
      TSQ pacing shift for packets going out over a WiFi interface. This
      significantly improves throughput for locally-originated TCP
      connections. The default pacing shift of 10 corresponds to ~1ms of
      queued packet data. Adjusting this to a shift of 8 (i.e. ~4ms) improves
      1-hop throughput for ath9k by a factor of 3, whereas increasing it more
      has diminishing returns.
      
      Achieved throughput for different values of sk_pacing_shift (average of
      5 iterations of 10-sec netperf runs to a host on the other side of the
      WiFi hop):
      
      sk_pacing_shift 10:  43.21 Mbps (pre-patch)
      sk_pacing_shift  9:  78.17 Mbps
      sk_pacing_shift  8: 123.94 Mbps
      sk_pacing_shift  7: 128.31 Mbps
      
      Latency for competing flows increases from ~3 ms to ~10 ms with this
      change. This is about the same magnitude of queueing latency induced by
      flows that are not originated on the WiFi device itself (and so are not
      limited by TSQ).
      Signed-off-by: NToke Høiland-Jørgensen <toke@toke.dk>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      36148c2b
    • I
      mac80211: Call mgd_prep_tx before transmitting deauthentication · 94ba9271
      Ilan Peer 提交于
      In multi channel scenarios, when disassociating from the AP before a
      beacon was heard from the AP, it is not guaranteed that the virtual
      interface is granted air time for the transmission of the
      deauthentication frame. This in turn can lead to various issues as
      the AP might never get the deauthentication frame.
      
      To mitigate such possible issues, add a HW flag indicating that the
      driver requires mac80211 to call the mgd_prep_tx() driver callback
      to make sure that the virtual interface is granted immediate airtime
      to be able to transmit the frame, in case that no beacon was heard
      from the AP.
      Signed-off-by: NIlan Peer <ilan.peer@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      94ba9271