diff options
author | Johannes Berg <johannes.berg@intel.com> | 2017-02-27 08:38:11 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-15 02:02:48 (GMT) |
commit | b507df2e236e5edc868ea8ac572567f1de0107f7 (patch) | |
tree | 5c31791fd7d90aa0510b235a2eec217cf0fb3327 /mm | |
parent | 39813849996f96a764df9b993ba726e995aa1dda (diff) | |
download | linux-b507df2e236e5edc868ea8ac572567f1de0107f7.tar.xz |
mac80211: use driver-indicated transmitter STA only for data frames
commit 19d19e960598161be92a7e4828eb7706c6410ce6 upstream.
When I originally introduced using the driver-indicated station as an
optimisation to avoid the hashtable lookup/iteration, of course it
wasn't intended to really functionally change anything.
I neglected, however, to take into account VLAN interfaces, which have
the property that management and data frames are handled differently:
data frames go directly to the station and the VLAN while management
frames continue to be processed over the underlying/associated AP-type
interface. As a consequence, when a driver used this optimisation for
management frames and the user enabled VLANs, my change broke things
since any management frames, particularly disassoc/deauth, were missed
by hostapd.
Fix this by restoring the original code path for non-data frames, they
aren't critical for performance to begin with.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=194713.
Big thanks goes to Jarek who bisected the issue and provided a very
detailed bug report, including the crucial information that he was
using VLANs in his configuration.
Fixes: 771e846bea9e ("mac80211: allow passing transmitter station on RX")
Reported-and-tested-by: Jarek KamiĆski <jarek@freeside.be>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm')
0 files changed, 0 insertions, 0 deletions