1. 22 6月, 2012 3 次提交
  2. 21 6月, 2012 5 次提交
  3. 20 6月, 2012 11 次提交
  4. 19 6月, 2012 3 次提交
  5. 18 6月, 2012 4 次提交
  6. 14 6月, 2012 2 次提交
  7. 13 6月, 2012 3 次提交
  8. 11 6月, 2012 2 次提交
  9. 09 6月, 2012 2 次提交
  10. 07 6月, 2012 5 次提交
    • J
      mac80211: unify SW/offload remain-on-channel · 2eb278e0
      Johannes Berg 提交于
      Redesign all the off-channel code, getting rid of
      the generic off-channel work concept, replacing
      it with a simple remain-on-channel list.
      
      This fixes a number of small issues with the ROC
      implementation:
       * offloaded remain-on-channel couldn't be queued,
         now we can queue it as well, if needed
       * in iwlwifi (the only user) offloaded ROC is
         mutually exclusive with scanning, use the new
         queue to handle that case -- I expect that it
         will later depend on a HW flag
      
      The bigger issue though is that there's a bad bug
      in the current implementation: if we get a mgmt
      TX request while HW roc is active, and this new
      request has a wait time, we actually schedule a
      software ROC instead since we can't guarantee the
      existing offloaded ROC will still be that long.
      To fix this, the queuing mechanism was needed.
      
      The queuing mechanism for offloaded ROC isn't yet
      optimal, ideally we should add API to have the HW
      extend the ROC if needed. We could add that later
      but for now use a software implementation.
      
      Overall, this unifies the behaviour between the
      offloaded and software-implemented case as much
      as possible.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2eb278e0
    • J
      mac80211: do remain-on-channel while idle · 196ac1c1
      Johannes Berg 提交于
      The IDLE handling in HW off-channel is broken right
      now since we turn off IDLE only when the off-channel
      period already started. Therefore, all drivers that
      use it today (only iwlwifi!) must support off-channel
      while idle, so playing with idle isn't needed at all.
      
      Off-channel in general, since it's no longer used for
      authentication/association, shouldn't affect PS, so
      also remove that logic.
      
      Also document a small caveat for reporting TX status
      from off-channel frames in HW remain-on-channel.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      196ac1c1
    • A
      mac80211: add stations after AP start on reconfig · 2e8d397e
      Arik Nemtsov 提交于
      When performing a HW restart for an AP mode interface, add stations back
      only after the AP is beaconing. This mimics the normal flow of STA
      addition on AP.
      
      Some devices (wlcore) do not support adding stations before beaconing,
      so this has the added benefit of making recovery work for them.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2e8d397e
    • J
      cfg80211: validate remain-on-channel time better · ebf348fc
      Johannes Berg 提交于
      The remain-on-channel time validation shouldn't
      depend on the value of HZ, as it does now with
      the check against jiffies, since then you might
      use a value that works on one system but not on
      another. Fix it by checking against a minimum
      that's fixed.
      
      Also add validation of the wait duration for a
      management frame TX since this also translates
      into remain-on-channel internally.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      ebf348fc
    • P
      mac80211: Clear wowlan flag when drv_suspend returns failure · 3b08cf6b
      Pontus Fuchs 提交于
      drv_resume can get called without a prior call to drv_suspend.
      Consider the following steps:
      
      1. Suspend is started but driver's drv_suspend returns error.
      2. Suspend is aborted. local->wowlan flag is left set.
      3. Interface is removed.
      4. Suspend again. This time open_count is 0 so drv_suspend is
         not called and local->wowlan not cleared.
      5. On resume ieee80211_reconfig will call drv_resume since
         local->wowlan is set.
      Signed-off-by: NPontus Fuchs <pontus.fuchs@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3b08cf6b