From: Liang Li <liang.li@xxxxxxxxxxxxx> As part of commit 463454b5dbd8 ("cfg80211: fix interface combinations check"), this extra check was introduced: if ((all_iftypes & used_iftypes) != used_iftypes) goto cont; However, most wireless NIC drivers did not advertise ADHOC in wiphy.iface_combinations[i].limits[] hence we'll get -EBUSY when we bring up a ADHOC wlan by commands similar to: # iwconfig wlan0 mode ad-hoc && ifconfig wlan0 up In commit 8e8b41f9d8c8e ("cfg80211: enforce lack of interface combinations"), the change below happens to fix the issue: if (total == 1) return 0; But it also introduces other dependencies, at least for stable. For example, a full cherry pick of 8e8b41f9d8c8e would introduce additional regressions unless we also start cherry picking driver specific fixes like the following: 9b4760e ath5k: add possible wiphy interface combinations 1ae2fc2 mac80211_hwsim: advertise interface combinations 20c8e8d ath9k: add possible wiphy interface combinations It seems like we should add an exception for NL80211_IFTYPE_ADHOC, since it is a kind of 'basic' mode, being supported by almost all wifi cards but currently most drivers don't advertise it at all. So making the NL80211_IFTYPE_ADHOC a part of all_iftypes seems reasonable. Doing so also gives stable kernels a way to fix the change introduced by 463454b5dbd8, without having to make cherry picks specific to various NIC drivers. Signed-off-by: Liang Li <liang.li@xxxxxxxxxxxxx> Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> --- net/wireless/util.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/wireless/util.c b/net/wireless/util.c index 26f8cd3..4a4749c 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -1129,6 +1129,8 @@ int cfg80211_can_use_iftype_chan(struct cfg80211_registered_device *rdev, } } + all_iftypes |= BIT(NL80211_IFTYPE_ADHOC); + /* * Finally check that all iftypes that we're currently * using are actually part of this combination. If they -- 1.7.11.1 -- 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