• Johannes Berg's avatar
    mac80211: use driver-indicated transmitter STA only for data frames · b507df2e
    Johannes Berg authored
    commit 19d19e96 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: default avatarJarek Kamiński <jarek@freeside.be>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    b507df2e
rx.c 119 KB