1. 13 5月, 2010 1 次提交
    • J
      mac80211: don't process work item with wrong frame · b8d92c9c
      Johannes Berg 提交于
      When we process a frame, we currently just match it
      to the work struct by the MAC addresses, and not by
      the work type. This means that we can end up doing
      the work for an association request item when (for
      whatever reason) we receive another frame type, for
      example a probe response. Processing the wrong type
      of frame will lead to completely invalid data being
      processed, and will lead to various problems like
      thinking the association was successful even if the
      AP never sent an assocation response.
      
      Fix this by making each processing function check
      that it is invoked for the right work struct type
      only and continue processing otherwise (and drop
      frames that we didn't expect).
      
      This bug was uncovered during the debugging for
      https://bugzilla.kernel.org/show_bug.cgi?id=15862
      but doesn't seem to be the cause for any of the
      various problems reported there.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b8d92c9c
  2. 27 2月, 2010 1 次提交
    • J
      mac80211: fix direct probe loop on ieee80211_work_purge · 0e0a2283
      Juuso Oikarinen 提交于
      If authentication has already been performed when the WLAN interface is
      stopped, (sometimes) the ieee80211_work_purge would corrupt some
      ieee80211_work-structures. The outcome is this (cleaned up):
      
      [ 2252.398681] WARNING: at net/mac80211/work.c:995 ieee80211_work_purge
      [ 2252.466430] Backtrace:
      [ 2252.529266] (ieee80211_work_purge+0x0/0xcc [mac80211])
      [ 2252.546875] (ieee80211_stop+0x0/0x4c0 [mac80211])
      
      Additionally, one would get this, going on regarless of the WLAN interface
      state, going on forever:
      
      [ 2252.859985] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717525)
      [ 2253.055419] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717524)
      [ 2253.250610] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717523)
      [ 2253.446014] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717522)
      [ 2253.641357] wlan0: direct probe to 00:90:4c:60:04:00 (try -996717521)
      Signed-off-by: NJuuso Oikarinen <juuso.oikarinen@nokia.com>
      Reviewed-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0e0a2283
  3. 26 1月, 2010 2 次提交
  4. 13 1月, 2010 3 次提交
  5. 06 1月, 2010 1 次提交
    • K
      mac80211: fix a warning related to pointer conversion to u64 cookie · 1990ca61
      Kalle Valo 提交于
      On a 32 bit system (in this case an omap 3430 system) gcc warned about
      pointer conversion:
      
      net/mac80211/work.c: In function 'ieee80211_remain_on_channel_timeout':
      net/mac80211/work.c:534: warning: cast from pointer to integer of different size
      net/mac80211/work.c: In function 'ieee80211_remain_done':
      net/mac80211/work.c:1030: warning: cast from pointer to integer of different size
      net/mac80211/work.c: In function 'ieee80211_wk_remain_on_channel':
      net/mac80211/work.c:1056: warning: cast from pointer to integer of different size
      net/mac80211/work.c: In function 'ieee80211_wk_cancel_remain_on_channel':
      net/mac80211/work.c:1072: warning: cast from pointer to integer of different size
      
      Fix it by casting the pointers to unsigned long instead. This makes the
      compiler happy again.
      
      Compile-tested only.
      
      Cc: Johannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      1990ca61
  6. 29 12月, 2009 8 次提交