1. 15 Feb, 2013 32 commits
  2. 13 Feb, 2013 4 commits
  3. 12 Feb, 2013 2 commits
  4. 11 Feb, 2013 2 commits
    • 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
    • Seth Forshee's avatar
      mac80211: Fix tx queue handling during scans · 6c17b77b
      Seth Forshee authored
      
      
      Scans currently work by stopping the netdev tx queues but leaving the
      mac80211 queues active. This stops the flow of incoming packets while
      still allowing mac80211 to transmit nullfunc and probe request frames to
      facilitate scanning. However, the driver may try to wake the mac80211
      queues while in this state, which will also wake the netdev queues.
      
      To prevent this, add a new queue stop reason,
      IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL, to be used when stopping the tx
      queues for off-channel operation. This prevents the netdev queues from
      waking when a driver wakes the mac80211 queues.
      
      This also stops all frames from being transmitted, even those meant to
      be sent off-channel. Add a new tx control flag,
      IEEE80211_TX_CTL_OFFCHAN_TX_OK, which allows frames to be transmitted
      when the queues are stopped only for the off-channel stop reason. Update
      all locations transmitting off-channel frames to use this flag.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      6c17b77b