On Wed, 2012-08-01 at 12:14 -0400, Paul Gortmaker wrote: > Normally a single patch doesn't warrant a 0/1, but Liang did some > digging on this problem and came up with important background, and > several possible solutions, so I wanted to capture what he'd learned. > > The issues with creating an ad-hoc network started in 3.4.3 with the > cherry pick of 463454b5dbd ("cfg80211: fix interface combinations check") > on intel hardware (iwl-mac80211.c) that doesn't support multi-function > or virtual interfaces. Specifically, it adds this: > > + if ((all_iftypes & used_iftypes) != used_iftypes) > + goto cont; > > and we have the case for Intel cards that all_iftypes equal to 0b1100 > but used_iftypes equal to 0b0010 hence we hit 'goto cont' to miss the > 'return 0' and now get EBUSY. > > Liang identified f8cdddb8d61d ("cfg80211: check iface combinations > only when iface is running") as part of the fix (now in 3.4.6) 3.2.y also has the above two changes, so presumably also has this regression. Ben. > However, things still weren't right unless he also cherry picked the > 8e8b41f9d8c8e6 ("cfg80211: enforce lack of interface combinations") > to get the later mentioned "total == 1" check within, so that we > avoid the EBUSY above. But this commit causes other regressions > (as described in the commit log of the attached patch) so we didn't > think it best to go that route for 3.4.x. > > So, the options we considered (to fix 3.4.x stable) were: > > 1) cherry pick 8e8b41f9d, and all the driver specific changes it requires > > 2) make a sub-commit for stable that just takes the total==1 from #1. > > 3) patch iwlwifi/iwl-mac80211.c and add ".types = BIT(NL80211_IFTYPE_ADHOC)" > > 4) treat ADHOC as a universal feature that everyone has. > > The following patch does #4, and in theory it could be used in mainline > and then cherry picked back to stable. But we weren't 100% sure if that > was the best solution, since neither of us are really wireless people, > hence all the detail here. > > Thanks, > Paul. > --- > > Liang Li (1): > cfg80211: fix combination check for ADHOC > > net/wireless/util.c | 2 ++ > 1 file changed, 2 insertions(+) > -- Ben Hutchings Experience is directly proportional to the value of equipment destroyed. - Carolyn Scheppner
Attachment:
signature.asc
Description: This is a digitally signed message part