]> git.baikalelectronics.ru Git - kernel.git/commit
iwlwifi: mvm: don't WARN when a legit race happens in A-MPDU
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 27 Jul 2017 12:34:12 +0000 (15:34 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Wed, 9 Aug 2017 05:53:50 +0000 (08:53 +0300)
commitd12f51455e11557b6268cb3d282f5bce7aa58247
tree743d924ee0720822d5701a5061ac1f8de8acb75f
parent550e41bcc861bb2791e9354a6d5e2d298b8de92e
iwlwifi: mvm: don't WARN when a legit race happens in A-MPDU

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: f16e42ec2a91 ("iwlwifi: mvm: add reorder buffer per queue")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c