Johannes Berg 19d19e9605 mac80211: use driver-indicated transmitter STA only for data frames
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.

Cc: stable@vger.kernel.org
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>
2017-02-28 07:42:05 +01:00
..
2017-02-27 14:09:49 +01:00
2017-02-09 15:17:30 +01:00
2014-11-04 13:18:21 +01:00
2014-04-09 14:49:43 +02:00
2017-02-10 14:31:51 -05:00
2017-02-09 15:18:24 +01:00
2015-05-11 19:16:04 +02:00
2014-04-09 14:49:43 +02:00
2016-12-13 16:05:09 +01:00
2017-02-27 14:09:26 +01:00
2017-02-09 15:17:30 +01:00
2012-03-13 14:54:16 -04:00