Johannes Berg a986553877 mac80211: fix change_interface queue assignments
Jouni reported that with mac80211_hwsim, multicast TX was causing
crashes due to invalid vif->cab_queue assignment. It turns out that
this is caused by change_interface() getting invoked and not having
the vif->type/vif->p2p assigned correctly before calling the queue
check (ieee80211_check_queues). Fix this by passing the 'external'
interface type to the function and adjusting it accordingly.

While at it, also fix the error path in change_interface, it wasn't
correctly resetting to the external type but using the internal one
instead.

Fortunately this affects on hwsim because all other drivers set the
vif->type/vif->p2p variables when changing iftype. This shouldn't
be needed, but almost all implementations actually do it for their
own internal handling.

Reported-by: Jouni Malinen <j@w1.fi>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-08-26 09:52:58 +02:00
..
2011-07-08 11:11:24 -04:00
2011-07-08 11:11:20 -04:00
2013-08-12 14:11:42 +02:00
2013-02-04 18:57:47 +01:00
2009-07-10 15:01:49 -04:00
2013-07-16 09:57:57 +03:00
2013-02-21 12:05:51 -08:00
2013-02-04 18:57:47 +01:00
2013-02-15 15:46:37 +01:00
2011-03-31 11:26:23 -03:00
2013-08-23 16:06:03 +02:00
2012-06-24 11:33:18 +02:00
2013-06-13 11:58:47 +02:00
2012-03-13 14:54:16 -04:00
2013-02-04 18:57:47 +01:00
2012-06-20 17:35:22 +02:00