Skip to content
  • Seth Forshee's avatar
    mac80211: Add flushes before going off-channel · 9c35d7d2
    Seth Forshee authored
    
    
    We've got a couple of races when enabling powersave with an AP for
    off-channel operation. The first is fairly simple. If we go off-channel
    before the nullfunc frame to enable PS is transmitted then it may not be
    received by the AP. Add a flush after enabling off-channel PS to prevent
    this from happening.
    
    The second race is a bit more subtle. If the driver supports QoS and has
    frames queued when the nullfunc frame is queued, those frames may get
    transmitted after the nullfunc frame. If PM is not set then the AP is
    being told that we've exited PS before we go off-channel and may try to
    deliver frames. To prevent this, add a flush after stopping the queues
    but before passing the nullfunc frame to the driver.
    
    Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    9c35d7d2