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
signature.asc
Description: This is a digitally signed message part
