]> git.baikalelectronics.ru Git - kernel.git/commit
iwlwifi: mvm: fix a race in D0i3 vs. Tx path
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 17 Aug 2015 12:54:41 +0000 (15:54 +0300)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 18 Aug 2015 07:25:26 +0000 (10:25 +0300)
commit1df66b8c44d121ad6d2bf887167c405557187352
treee5a4f37d87933dec534bce6b915c394025489c1e
parent91a9d4a325c571316ffef0a16b7a3abe89005180
iwlwifi: mvm: fix a race in D0i3 vs. Tx path

When we enter D0i3, we must stop TXing otherwise the
sequence number we use might conflict with the firmware's
internal TX. In order to do so, we have
IWL_MVM_STATUS_IN_D0I3 which should prevent any Tx while we
enter D0i3. There is a bug in this code since we may Tx even
if IWL_MVM_STATUS_IN_D0I3 is set. This can happen as long as
mvm->d0i3_ap_sta_id is not set.

To make sure that we don't have any packet in the Tx path
while we set mvm->d0i3_ap_sta_id, call synchronize_net only
after we already set mvm->d0i3_ap_sta_id.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/ops.c