Shaul Triebitz 96d2bfb794 iwlwifi: mvm: clear IN_D3 after wowlan status cmd
In D3 resume flow, avoid the following race where sending
packets before updating the sequence number (sequence
number received from the wowlan status command response):
Thread 1:
__iwl_mvm_resume clears IWL_MVM_STATUS_IN_D3 and is cut
by thread 2 before reaching iwl_mvm_query_wakeup_reasons.
Thread 2:
iwl_mvm_mac_itxq_xmit calls iwl_mvm_tx_skb since
IWL_MVM_STATUS_IN_D3 is not set using a wrong sequence number.
Thread 1:
__iwl_mvm_resume continues and calls iwl_mvm_query_wakeup_reasons
updating the sequence number received from the firmware.

The next packet that will be sent now will cause sysassert 0x1096.

Fix the bug by moving 'clear IWL_MVM_STATUS_IN_D3' to after
sending the wowlan status command and updating the sequence
number.

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/iwlwifi.20210122144849.fe927ec939c6.I103d3321fb55da7e6c6c51582cfadf94eb8b6c58@changeid
2021-01-25 15:59:19 +02:00
..
2020-12-24 12:18:11 -08:00
2020-12-24 12:28:35 -08:00
2020-12-16 16:38:41 -08:00
2020-12-18 12:38:28 -08:00
2020-12-16 16:38:41 -08:00
2020-12-24 12:18:11 -08:00
2020-12-17 12:52:23 -08:00
2020-12-24 12:14:29 -08:00
2020-12-07 10:08:14 +01:00
2020-12-15 16:06:14 -08:00
2020-12-16 11:49:46 -08:00
2020-12-15 16:30:31 -08:00
2021-01-01 12:58:07 -08:00
2020-12-16 13:58:47 -08:00
2020-12-20 10:44:05 -08:00
2021-01-05 15:50:36 -08:00
2020-12-09 19:26:02 -06:00
2020-12-16 16:38:41 -08:00
2020-12-16 13:34:31 -08:00
2020-12-17 13:34:25 -08:00
2020-12-15 15:57:25 -08:00
2020-12-16 13:42:26 -08:00
2020-12-15 14:02:26 -08:00
2020-12-25 20:17:40 -08:00
2020-12-23 15:06:22 -08:00
2020-12-15 22:50:12 +11:00
2020-12-19 11:51:32 -08:00
2020-12-16 16:38:41 -08:00
2020-12-16 16:38:41 -08:00
2020-12-20 10:12:06 -08:00
2021-01-01 12:58:07 -08:00
2020-12-17 13:41:27 -08:00
2020-12-10 10:45:36 +01:00
2020-12-18 12:38:28 -08:00
2020-12-16 13:34:31 -08:00
2020-12-16 16:38:41 -08:00
2020-12-17 13:34:25 -08:00
2020-12-20 10:44:05 -08:00
2021-01-05 13:30:28 -08:00
2020-12-18 12:38:28 -08:00
2020-12-09 19:44:34 +01:00
2020-12-23 15:01:49 -08:00