linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC/PATCH 0/1] Fix inability to configure adhoc in 3.4.x
@ 2012-08-01 16:14 Paul Gortmaker
  2012-08-01 16:14 ` [PATCH] cfg80211: fix combination check for ADHOC Paul Gortmaker
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Paul Gortmaker @ 2012-08-01 16:14 UTC (permalink / raw)
  To: Johannes Berg
  Cc: John W. Linville, linux-wireless, stable, liang.li,
	Paul Gortmaker

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)

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(+)

-- 
1.7.11.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2012-08-13 19:01 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-01 16:14 [RFC/PATCH 0/1] Fix inability to configure adhoc in 3.4.x Paul Gortmaker
2012-08-01 16:14 ` [PATCH] cfg80211: fix combination check for ADHOC Paul Gortmaker
2012-08-01 16:31 ` [RFC/PATCH 0/1] Fix inability to configure adhoc in 3.4.x Johannes Berg
2012-08-01 17:38   ` Paul Gortmaker
2012-08-01 17:42     ` Johannes Berg
2012-08-01 17:58       ` Paul Gortmaker
2012-08-02 22:55         ` [PATCH stable] cfg80211: fix interface combinations check for ADHOC(IBSS) Paul Gortmaker
2012-08-06  1:00           ` Ben Hutchings
2012-08-13 18:59           ` Patch "cfg80211: fix interface combinations check for ADHOC(IBSS)" has been added to the 3.4-stable tree gregkh
2012-08-13 19:00           ` Patch "cfg80211: fix interface combinations check for ADHOC(IBSS)" has been added to the 3.0-stable tree gregkh
2012-08-02  2:53 ` [RFC/PATCH 0/1] Fix inability to configure adhoc in 3.4.x Ben Hutchings

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).