OpenCloudOS-Kernel/drivers/net/wireless
Antonio Quartulli fe94f3a4ff cfg80211: fix channel configuration in IBSS join
When receiving an IBSS_JOINED event select the BSS object
based on the {bssid, channel} couple rather than the bssid
only.
With the current approach if another cell having the same
BSSID (but using a different channel) exists then cfg80211
picks up the wrong BSS object.
The result is a mismatching channel configuration between
cfg80211 and the driver, that can lead to any sort of
problem.

The issue can be triggered by having an IBSS sitting on
given channel and then asking the driver to create a new
cell using the same BSSID but with a different frequency.
By passing the channel to cfg80211_get_bss() we can solve
this ambiguity and retrieve/create the correct BSS object.
All the users of cfg80211_ibss_joined() have been changed
accordingly.

Moreover WARN when cfg80211_ibss_joined() gets a NULL
channel as argument and remove a bogus call of the same
function in ath6kl (it does not make sense to call
cfg80211_ibss_joined() with a zero BSSID on ibss-leave).

Cc: Kalle Valo <kvalo@qca.qualcomm.com>
Cc: Arend van Spriel <arend@broadcom.com>
Cc: Bing Zhao <bzhao@marvell.com>
Cc: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Cc: libertas-dev@lists.infradead.org
Acked-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
[minor code cleanup in ath6kl]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2014-02-04 21:58:16 +01:00
..
ath cfg80211: fix channel configuration in IBSS join 2014-02-04 21:58:16 +01:00
b43 b43: fix the wrong assignment of status.freq in b43_rx() 2014-01-23 14:02:45 -05:00
b43legacy b43legacy: Fix unload oops if firmware is not available 2014-01-13 14:50:03 -05:00
brcm80211 cfg80211: fix channel configuration in IBSS join 2014-02-04 21:58:16 +01:00
cw1200 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-17 14:43:17 -05:00
hostap Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-10 10:59:40 -05:00
ipw2x00 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-10 10:59:40 -05:00
iwlegacy mac80211: remove module handling from rate control ops 2014-02-04 21:48:26 +01:00
iwlwifi nl80211: fix scheduled scan RSSI matchset attribute confusion 2014-02-04 21:58:12 +01:00
libertas cfg80211: fix channel configuration in IBSS join 2014-02-04 21:58:16 +01:00
libertas_tf mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
mwifiex cfg80211: fix channel configuration in IBSS join 2014-02-04 21:58:16 +01:00
orinoco wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
p54 p54: clamp properly instead of just truncating 2014-01-13 14:50:06 -05:00
prism54 wireless: slight optimization of addr compare 2013-12-26 13:31:35 -05:00
rt2x00 rt2x00: rt2800usb: mark D-Link DWA-137 as supported 2014-01-23 14:02:45 -05:00
rtl818x wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
rtlwifi mac80211: add length check in ieee80211_is_robust_mgmt_frame() 2014-02-04 21:58:07 +01:00
ti Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-17 14:43:17 -05:00
zd1211rw zd1211rw: slight optimization of addr compare 2013-12-26 13:31:33 -05:00
Kconfig cw1200: add driver for the ST-E CW1100 & CW1200 WLAN chipsets 2013-05-29 15:26:40 -04:00
Makefile cw1200: add driver for the ST-E CW1100 & CW1200 WLAN chipsets 2013-05-29 15:26:40 -04:00
adm8211.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-17 14:43:17 -05:00
adm8211.h
airo.c wireless: airo: remove unnecessary pci_set_drvdata() 2013-09-26 15:13:42 -04:00
airo.h
airo_cs.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
at76c50x-usb.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2014-01-13 14:40:59 -05:00
at76c50x-usb.h
atmel.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
atmel.h drivers/net/wireless: Fix FSF address in file headers 2013-12-11 10:56:20 -05:00
atmel_cs.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
atmel_pci.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
mac80211_hwsim.c mac80211_hwsim: add channel switch support 2014-02-04 21:48:27 +01:00
mac80211_hwsim.h mac80211_hwsim: make P2P-Device support optional 2014-02-04 21:48:27 +01:00
mwl8k.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2014-01-13 14:40:59 -05:00
ray_cs.c drivers/net/wireless: Fix FSF address in file headers 2013-12-11 10:56:20 -05:00
ray_cs.h
rayctl.h
rndis_wlan.c cfg80211: fix channel configuration in IBSS join 2014-02-04 21:58:16 +01:00
wl3501.h
wl3501_cs.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-10 10:59:40 -05:00
zd1201.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2013-08-28 10:36:09 -04:00
zd1201.h