1. 11 12月, 2020 16 次提交
  2. 13 11月, 2020 1 次提交
    • J
      mac80211: free sta in sta_info_insert_finish() on errors · 7bc40aed
      Johannes Berg 提交于
      If sta_info_insert_finish() fails, we currently keep the station
      around and free it only in the caller, but there's only one such
      caller and it always frees it immediately.
      
      As syzbot found, another consequence of this split is that we can
      put things that sleep only into __cleanup_single_sta() and not in
      sta_info_free(), but this is the only place that requires such of
      sta_info_free() now.
      
      Change this to free the station in sta_info_insert_finish(), in
      which case we can still sleep. This will also let us unify the
      cleanup code later.
      
      Cc: stable@vger.kernel.org
      Fixes: dcd479e1 ("mac80211: always wind down STA state")
      Reported-by: syzbot+32c6c38c4812d22f2f0b@syzkaller.appspotmail.com
      Reported-by: syzbot+4c81fe92e372d26c4246@syzkaller.appspotmail.com
      Reported-by: syzbot+6a7fe9faf0d1d61bc24a@syzkaller.appspotmail.com
      Reported-by: syzbot+abed06851c5ffe010921@syzkaller.appspotmail.com
      Reported-by: syzbot+b7aeb9318541a1c709f1@syzkaller.appspotmail.com
      Reported-by: syzbot+d5a9416c6cafe53b5dd0@syzkaller.appspotmail.com
      Link: https://lore.kernel.org/r/20201112112201.ee6b397b9453.I9c31d667a0ea2151441cc64ed6613d36c18a48e0@changeidSigned-off-by: NJohannes Berg <johannes.berg@intel.com>
      7bc40aed
  3. 12 11月, 2020 3 次提交
  4. 11 11月, 2020 1 次提交
  5. 08 11月, 2020 1 次提交
  6. 06 11月, 2020 6 次提交
  7. 03 11月, 2020 1 次提交
  8. 30 10月, 2020 5 次提交
  9. 14 10月, 2020 1 次提交
  10. 08 10月, 2020 3 次提交
  11. 02 10月, 2020 1 次提交
  12. 28 9月, 2020 1 次提交
    • B
      mac80211: Support not iterating over not-sdata-in-driver ifaces · 265a0708
      Ben Greear 提交于
      Allow drivers to request that interface-iterator does NOT iterate
      over interfaces that are not sdata-in-driver.  This will allow
      us to fix crashes in ath10k (and possibly other drivers).
      
      To summarize Johannes' explanation:
      
      Consider
      
      add interface wlan0
      add interface wlan1
      iterate active interfaces -> wlan0 wlan1
      add interface wlan2
      iterate active interfaces -> wlan0 wlan1 wlan2
      
      If you apply this scenario to a restart, which ought to be functionally
      equivalent to the normal startup, just compressed in time, you're
      basically saying that today you get
      
      add interface wlan0
      add interface wlan1
      iterate active interfaces -> wlan0 wlan1 wlan2 << problem here
      add interface wlan2
      iterate active interfaces -> wlan0 wlan1 wlan2
      
      which yeah, totally seems wrong.
      
      But fixing that to be
      
      add interface wlan0
      add interface wlan1
      iterate active interfaces ->
      <nothing>
      add interface wlan2
      iterate active interfaces -> <nothing>
      (or
      maybe -> wlan0 wlan1 wlan2 if the reconfig already completed)
      
      This is also at least somewhat wrong, but better to not iterate
      over something that exists in the driver than iterate over something
      that does not.  Originally the first issue was causing crashes in
      testing with lots of station vdevs on an ath10k radio, combined
      with firmware crashing.
      
      I ran with a similar patch for years with no obvious bad results,
      including significant testing with ath9k and ath10k.
      Signed-off-by: NBen Greear <greearb@candelatech.com>
      Link: https://lore.kernel.org/r/20200922191957.25257-1-greearb@candelatech.comSigned-off-by: NJohannes Berg <johannes.berg@intel.com>
      265a0708