mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
cfg80211: fix interface combinations check for ADHOC(IBSS)
partial of commit8e8b41f9d8upstream. As part of commit463454b5db("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[] and hence we'll get -EBUSY when we bring up a ADHOC wlan with commands similar to: # iwconfig wlan0 mode ad-hoc && ifconfig wlan0 up In commit8e8b41f9d8("cfg80211: enforce lack of interface combinations"), the change below fixes the issue: if (total == 1) return 0; But it also introduces other dependencies for stable. For example, a full cherry pick of8e8b41f9d8would introduce additional regressions unless we also start cherry picking driver specific fixes like the following:9b4760eath5k: add possible wiphy interface combinations1ae2fc2mac80211_hwsim: advertise interface combinations20c8e8dath9k: add possible wiphy interface combinations And the purpose of the 'if (total == 1)' is to cover the specific use case (IBSS, adhoc) that was mentioned above. So we just pick the specific part out from8e8b41f9d8here. Doing so gives stable kernels a way to fix the change introduced by463454b5db, without having to make cherry picks specific to various NIC drivers. Signed-off-by: Liang Li <liang.li@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b27c59d2c2
commit
4f5a5866aa
|
|
@ -975,6 +975,9 @@ int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev,
|
|||
}
|
||||
mutex_unlock(&rdev->devlist_mtx);
|
||||
|
||||
if (total == 1)
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < rdev->wiphy.n_iface_combinations; i++) {
|
||||
const struct ieee80211_iface_combination *c;
|
||||
struct ieee80211_iface_limit *limits;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user