mac80211: fix dtim_period in hidden SSID AP association
authorJohannes Berg <johannes.berg@intel.com>
Mon, 10 Dec 2012 14:38:14 +0000 (16:38 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 3 Jan 2013 12:00:00 +0000 (13:00 +0100)
commit826262c3d23743cb032a9e1a65a0f9be75091a5e
tree353570411d99f50dd45355dc80075570bb24b5c6
parenta56f992cdabc63f56b4b142885deebebf936ff76
mac80211: fix dtim_period in hidden SSID AP association

When AP's SSID is hidden the BSS can appear several times in
cfg80211's BSS list: once with a zero-length SSID that comes
from the beacon, and once for each SSID from probe reponses.

Since the mac80211 stores its data in ieee80211_bss which
is embedded into cfg80211_bss, mac80211's data will be
duplicated too.

This becomes a problem when a driver needs the dtim_period
since this data exists only in the beacon's instance in
cfg80211 bss table which isn't the instance that is used
when associating.

Remove the DTIM period from the BSS table and track it
explicitly to avoid this problem.

Cc: stable@vger.kernel.org
Tested-by: Efi Tubul <efi.tubul@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/ieee80211_i.h
net/mac80211/mlme.c
net/mac80211/scan.c