OpenCloudOS-Kernel/drivers/net/wireless/ath
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
..
ar5523 wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
ath5k ath5k: use ath_is_mybeacon 2014-01-16 14:55:45 -05:00
ath6kl cfg80211: fix channel configuration in IBSS join 2014-02-04 21:58:16 +01:00
ath9k mac80211: remove module handling from rate control ops 2014-02-04 21:48:26 +01:00
ath10k 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
carl9170 carl9170: use ath_is_mybeacon 2014-01-16 14:55:45 -05:00
wcn36xx net: wirelesse: wcn36xx: pull allocation outside of critical section 2013-12-18 15:18:19 -05:00
wil6210 wil6210: correct #include for prefetch() 2014-01-16 14:55:43 -05:00
Kconfig ath: add support for proper dynamic regulatory hints 2013-10-18 14:04:41 -04:00
Makefile ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
ath.h ath: add common function ath_is_mybeacon 2014-01-16 14:55:44 -05:00
debug.c
dfs_pattern_detector.c ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
dfs_pattern_detector.h ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
dfs_pri_detector.c ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
dfs_pri_detector.h ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
hw.c ath: update hardware mac address with bssid mask 2013-04-22 15:20:15 -04:00
key.c ath: Let user know which keycache method is complaining. 2013-04-08 15:28:37 -04:00
main.c ath: add common function ath_is_mybeacon 2014-01-16 14:55:44 -05:00
reg.h ath: update hardware mac address with bssid mask 2013-04-22 15:20:15 -04:00
regd.c cfg80211: make regulatory_hint() remove REGULATORY_CUSTOM_REG 2014-01-13 14:46:58 -05:00
regd.h wireless: make the reg_notifier() void 2013-01-14 11:32:44 +01:00
regd_common.h