summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Kazior <michal.kazior@tieto.com>2012-06-29 12:46:59 +0200
committerJohannes Berg <johannes.berg@intel.com>2012-06-29 13:39:15 +0200
commitc30a3d38689bc601e03d5f2ad3c37d8ea13e46ca (patch)
tree75b38815ff594d6ffc77c3cb2252311d5fb3fd0b
parentcfg80211: add channel tracking for AP and mesh (diff)
downloadlinux-c30a3d38689bc601e03d5f2ad3c37d8ea13e46ca.tar.xz
linux-c30a3d38689bc601e03d5f2ad3c37d8ea13e46ca.zip
cfg80211: track ibss fixed channel
IBSS may hop between channels. It is necessary to account this special case when considering interface combinations. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--include/net/cfg80211.h2
-rw-r--r--net/wireless/ibss.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index c62bc7864adf..e030c6af86dd 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -2411,6 +2411,8 @@ struct wireless_dev {
/* for AP and mesh channel tracking */
struct ieee80211_channel *channel;
+ bool ibss_fixed;
+
bool ps;
int ps_timeout;
diff --git a/net/wireless/ibss.c b/net/wireless/ibss.c
index 89baa3328411..b90fd86b2d18 100644
--- a/net/wireless/ibss.c
+++ b/net/wireless/ibss.c
@@ -113,6 +113,7 @@ int __cfg80211_join_ibss(struct cfg80211_registered_device *rdev,
kfree(wdev->connect_keys);
wdev->connect_keys = connkeys;
+ wdev->ibss_fixed = params->channel_fixed;
#ifdef CONFIG_CFG80211_WEXT
wdev->wext.ibss.channel = params->channel;
#endif