This is a note to let you know that I've just added the patch titled cfg80211: fix interface combinations check for ADHOC(IBSS) to the 3.0-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: cfg80211-fix-interface-combinations-check-for-adhoc-ibss.patch and it can be found in the queue-3.0 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From paul.gortmaker@xxxxxxxxxxxxx Mon Aug 13 11:39:55 2012 From: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> Date: Thu, 2 Aug 2012 18:55:41 -0400 Subject: cfg80211: fix interface combinations check for ADHOC(IBSS) To: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> Cc: <linux-wireless@xxxxxxxxxxxxxxx>, <linville@xxxxxxxxxxxxx>, Liang Li <liang.li@xxxxxxxxxxxxx>, <stable@xxxxxxxxxxxxxxx>, Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> Message-ID: <1343948141-25005-1-git-send-email-paul.gortmaker@xxxxxxxxxxxxx> From: Liang Li <liang.li@xxxxxxxxxxxxx> partial of commit 8e8b41f9d8c8e63fc92f899ace8da91a490ac573 upstream. 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[] 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 commit 8e8b41f9d8c8e ("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 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 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 from 8e8b41f9d8c8e here. Doing so 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> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- net/wireless/util.c | 3 +++ 1 file changed, 3 insertions(+) --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -975,6 +975,9 @@ int cfg80211_can_change_interface(struct } 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; Patches currently in stable-queue which might be from paul.gortmaker@xxxxxxxxxxxxx are queue-3.0/mm-mmu_notifier-fix-freed-page-still-mapped-in-secondary-mmu.patch queue-3.0/cfg80211-fix-interface-combinations-check-for-adhoc-ibss.patch -- 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