• Emmanuel Grumbach's avatar
    iwlwifi: mvm: don't WARN when a legit race happens in A-MPDU · a600852a
    Emmanuel Grumbach authored
    When we start an Rx A-MPDU session, we first get the AddBA
    request, then we send an ADD_STA command to the firmware
    that will reply with a BAID which is a hardware resource
    that tracks the BA session.
    This BAID will appear on each and every frame that we get
    from the firwmare until the A-MPDU session is torn down.
    In the Rx path, we look at this BAID to manage the
    reordering buffer.
    
    This flow is inherently racy since the hardware will start
    to put the BAID in the frames it receives even if the
    firmware hasn't sent the response to the ADD_STA command.
    This basically means that the driver can get frames with
    a valid BAID that it doesn't know yet.
    When that happens, the driver used to WARN.
    Fix this by simply not WARN in this case. When the driver
    will know abou the BAID, it will initialise the relevant
    states and the next frame with a valid BAID will refresh
    them.
    
    Fixes: b915c101 ("iwlwifi: mvm: add reorder buffer per queue")
    Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
    a600852a
rxmq.c 31.7 KB