]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
mac80211: use driver-indicated transmitter STA only for data frames
authorJohannes Berg <johannes.berg@intel.com>
Mon, 27 Feb 2017 08:38:11 +0000 (09:38 +0100)
committerTim Gardner <tim.gardner@canonical.com>
Wed, 15 Mar 2017 15:32:11 +0000 (10:32 -0500)
commit7249d2c8656db3371c039e6765dd06431559558e
treec4c83dee8d41fde80ddcfc98aa426dd08ad59930
parent0790b57136658b543819375a23d8dcbb71f7ad2c
mac80211: use driver-indicated transmitter STA only for data frames

BugLink: http://bugs.launchpad.net/bugs/1673118
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>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
net/mac80211/rx.c