• Emmanuel Grumbach's avatar
    iwlwifi: mvm: set the correct tid when we flush the MCAST sta · 85e5ae55
    Emmanuel Grumbach authored
    [ Upstream commit 334167de ]
    
    The tid being used for the queue (cab_queue) for the MCAST
    station has been changed recently to be 0 (for BE).
    The flush path still flushed only the special tid (15)
    which means that the firmware wasn't flushing the right
    queue and we could get a firmware crash upon remove
    station if we had an MCAST packet on the ring.
    
    The current code that flushes queues for a station only
    differentiates between internal stations (stations that
    aren't instantiated in mac80211, like the MCAST station)
    and the non-internal ones.
    Internal stations can be either: BCAST (beacons), MCAST
    (for cab_queue), GENERAL_PURPOSE (p2p dev, and sniffer
    injection). The internal stations can use different tids.
    
    To make the code simpler, just flush all the tids always
    and add the special internal tid (15) for internal
    stations. The firmware will know how to handle this even
    if we hadn't any queue mapped that that tid.
    
    Fixes: e340c1a6ef4b ("iwlwifi: mvm: Correctly set the tid for mcast queue")
    Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
    Signed-off-by: default avatarSasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    85e5ae55
tx.c 55.1 KB