Commit 3dd3b79aeadc6f6abc5cc78724d7df3dfcc1bd0b

Authored by Abhijeet Kolekar
Committed by John W. Linville
1 parent e91af0af86

mac80211 : Fix setting ad-hoc mode and non-ibss channel

Patch fixes the kernel trace when user tries to set
ad-hoc mode on non IBSS channel.
e.g iwconfig wlan0 chan 36 mode ad-hoc

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

Showing 1 changed file with 8 additions and 0 deletions Side-by-side Diff

... ... @@ -271,6 +271,7 @@
271 271 __u32 *mode, char *extra)
272 272 {
273 273 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
  274 + struct ieee80211_local *local = sdata->local;
274 275 int type;
275 276  
276 277 if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN)
... ... @@ -281,6 +282,13 @@
281 282 type = NL80211_IFTYPE_STATION;
282 283 break;
283 284 case IW_MODE_ADHOC:
  285 + /* Setting ad-hoc mode on non ibss channel is not
  286 + * supported.
  287 + */
  288 + if (local->oper_channel &&
  289 + (local->oper_channel->flags & IEEE80211_CHAN_NO_IBSS))
  290 + return -EOPNOTSUPP;
  291 +
284 292 type = NL80211_IFTYPE_ADHOC;
285 293 break;
286 294 case IW_MODE_REPEAT: