1. 05 2月, 2011 2 次提交
    • R
      mac80211: do not restart ps timer during scan or offchannel · 8c99f691
      Rajkumar Manoharan 提交于
      While leaving oper channel, STA informs sleep state to AP to
      stop sending data. Till sending ack for the nullfunc, AP
      continues to send the data to STA which restarts ps_timer that
      is causing unnecessary nullfunc exchange on timer expiry
      when the STA was already moved to offchannel. So don't restart ps_timer
      on data reception during scan. This issue was identified by
      the following warning.
      
      WARNING: at net/mac80211/tx.c:661 invoke_tx_handlers+0xf07/0x1330 [mac80211]
      wlan0: Dropped data frame as no usable bitrate found while scanning and
      associated. Target station: 00:03:7f:0b:a6:1b on 5 GHz band
      Call Trace:
        [<ffffffffa0413ba7>] invoke_tx_handlers+0xf07/0x1330 [mac80211]
        [<ffffffffa0414056>] ieee80211_tx+0x86/0x2c0 [mac80211]
        [<ffffffffa0414345>] ieee80211_xmit+0xb5/0x1d0 [mac80211]
        [<ffffffffa04037e0>] ieee80211_dynamic_ps_enable_work+0x0/0xb0 [mac80211]
        [<ffffffffa04158cf>] ieee80211_tx_skb+0x4f/0x60 [mac80211]
        [<ffffffffa04026e6>] ieee80211_send_nullfunc+0x46/0x60 [mac80211]
        [<ffffffffa0403885>] ieee80211_dynamic_ps_enable_work+0xa5/0xb0 [mac80211]
      Reviewed-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NRajkumar Manoharan <rmanoharan@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8c99f691
    • C
      mac80211: fix race between next beacon dtim and ieee80211_get_buffered_bc · 512119b3
      Christian Lamparter 提交于
      On review of 'zd1211rw: implement beacon fetching and handling
      ieee80211_get_buffered_bc()', Christian Lamparter noted that [1]:
      
         Since zd_beacon_done also uploads the next beacon so long in advance,
         there could be an equally long race between the outdated state of the
         next beacon's DTIM broadcast traffic indicator (802.11-2007 7.3.2.6)
         which -in your case- was uploaded almost a beacon interval ago and
         the xmit of ieee80211_get_buffered_bc *now*.
      
         The dtim bc/mc bit might be not set, when a mc/bc arrived after the
         beacon was uploaded, but before the "beacon done event" from the
         hardware. So, dozing stations don't expect the broadcast traffic
         and of course, they might miss it completely.
      
         It's probably better to fix this in mac80211 (see the attached hack).
      
      [1] http://marc.info/?l=linux-wireless&m=129435041117256&w=2
      
      CC: Christian Lamparter <chunkeey@googlemail.com>
      Signed-off-by: NJussi Kivilinna <jussi.kivilinna@mbnet.fi>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      512119b3
  2. 04 2月, 2011 11 次提交
  3. 01 2月, 2011 1 次提交
  4. 29 1月, 2011 4 次提交
  5. 27 1月, 2011 1 次提交
    • J
      mac80211: use DECLARE_EVENT_CLASS · ba99d93b
      Johannes Berg 提交于
      For events that include only the local struct as
      their parameter, we can use DECLARE_EVENT_CLASS
      and save quite some binary size across segments
      as well lines of code.
      
         text	   data	    bss	    dec	    hex	filename
       375745	  19296	    916	 395957	  60ab5	mac80211.ko.before
       367473	  17888	    916	 386277	  5e4e5	mac80211.ko.after
        -8272   -1408       0   -9680   -25d0 delta
      
      Some more tracepoints with identical arguments
      could be combined like this but for now this is
      the one that benefits most.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      ba99d93b
  6. 26 1月, 2011 1 次提交
  7. 22 1月, 2011 2 次提交
  8. 20 1月, 2011 17 次提交
  9. 15 1月, 2011 1 次提交