diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-08-26 09:30:32 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-08-26 09:52:58 +0200 |
commit | a98655387762394371b88cdfb8215884757978ab (patch) | |
tree | 612c1221bc1d7f8e84260953a40a507c229dda13 /net/mac80211/agg-rx.c | |
parent | bcdd822007e44b1da1ad5a62f20b75ee7d8da608 (diff) | |
download | op-kernel-dev-a98655387762394371b88cdfb8215884757978ab.zip op-kernel-dev-a98655387762394371b88cdfb8215884757978ab.tar.gz |
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>
Diffstat (limited to 'net/mac80211/agg-rx.c')
0 files changed, 0 insertions, 0 deletions