1. 18 12月, 2018 9 次提交
  2. 05 12月, 2018 2 次提交
    • 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
    • B
      mac80211: rewrite Kconfig text for mesh · c8d10cbd
      Bob Copeland 提交于
      Lubomir Rintel recently pointed out a dead link for o11s.org, and
      repointed it to a still live, but also stale website.  As far as I
      know, no one is updating the content at open80211s.org.
      
      Since this Kconfig text was originally written, though, the 802.11s
      mesh drafts were approved and ultimately rolled into 802.11 proper.
      Meanwhile, the implementation has converged on the final standard,
      so we can lose all of the text here and provide something that's a
      little more helpful and accurate.
      Signed-off-by: NBob Copeland <bobcopeland@fb.com>
      Reviewed-by: NLubomir Rintel <lkundrak@v3.sk>
      Reviewed-by: NSteve deRosier <derosier@cal-sierra.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      c8d10cbd
  3. 09 11月, 2018 29 次提交