On Wed, 2014-01-29 at 17:53 +0100, Antonio Quartulli wrote: > From: Antonio Quartulli <antonio@xxxxxxxxxxxxx> > > 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). Applied, with a small code cleanup in ath6kl. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html