Subject: Re: [1/2] mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure

From: Kalle Valo <[email-masked]>
Date: Tue, 10 Nov 2020 18:50:13 +0000 (UTC)

Tsuchiya Yuto <[email-masked]> wrote:

> When a PCIe function level reset (FLR) is performed but without fw reset for
> some reasons (e.g., on Microsoft Surface devices, fw reset requires other
> quirks), it fails to reset wifi properly. You can trigger the issue on such
> devices via debugfs entry for reset:
> 
>     $ echo 1 | sudo tee /sys/kernel/debug/mwifiex/mlan0/reset
> 
> and the resulting dmesg log:
> 
>     [   45.740508] mwifiex_pcie 0000:03:00.0: Resetting per request
>     [   45.742937] mwifiex_pcie 0000:03:00.0: info: successfully disconnected from [BSSID]: reason code 3
>     [   45.744666] mwifiex_pcie 0000:03:00.0: info: shutdown mwifiex...
>     [   45.751530] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed
>     [   45.751539] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed
>     [   45.771691] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed
>     [   45.771695] mwifiex_pcie 0000:03:00.0: deleting the crypto keys
>     [   45.771697] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed
>     [   45.771698] mwifiex_pcie 0000:03:00.0: deleting the crypto keys
>     [   45.771699] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed
>     [   45.771701] mwifiex_pcie 0000:03:00.0: deleting the crypto keys
>     [   45.771702] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed
>     [   45.771703] mwifiex_pcie 0000:03:00.0: deleting the crypto keys
>     [   45.771704] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed
>     [   45.771705] mwifiex_pcie 0000:03:00.0: deleting the crypto keys
>     [   45.771707] mwifiex_pcie 0000:03:00.0: PREP_CMD: card is removed
>     [   45.771708] mwifiex_pcie 0000:03:00.0: deleting the crypto keys
>     [   53.099343] mwifiex_pcie 0000:03:00.0: info: trying to associate to '[SSID]' bssid [BSSID]
>     [   53.241870] mwifiex_pcie 0000:03:00.0: info: associated to bssid [BSSID] successfully
>     [   75.377942] mwifiex_pcie 0000:03:00.0: cmd_wait_q terminated: -110
>     [   85.385491] mwifiex_pcie 0000:03:00.0: info: successfully disconnected from [BSSID]: reason code 15
>     [   87.539408] mwifiex_pcie 0000:03:00.0: cmd_wait_q terminated: -110
>     [   87.539412] mwifiex_pcie 0000:03:00.0: deleting the crypto keys
>     [   99.699917] mwifiex_pcie 0000:03:00.0: cmd_wait_q terminated: -110
>     [   99.699925] mwifiex_pcie 0000:03:00.0: deleting the crypto keys
>     [  111.859802] mwifiex_pcie 0000:03:00.0: cmd_wait_q terminated: -110
>     [  111.859808] mwifiex_pcie 0000:03:00.0: deleting the crypto keys
>     [...]
> 
> When comparing mwifiex_shutdown_sw() with mwifiex_pcie_remove(), it
> lacks mwifiex_init_shutdown_fw().
> 
> This commit fixes mwifiex_shutdown_sw() by adding the missing
> mwifiex_init_shutdown_fw().
> 
> Fixes: 4c5dae59d2e9 ("mwifiex: add PCIe function level reset support")
> Signed-off-by: Tsuchiya Yuto <[email-masked]>

2 patches applied to wireless-drivers-next.git, thanks.

fa74cb1dc0f4 mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure
566b4cb9587e mwifiex: update comment for shutdown_sw()/reinit_sw() to reflect current state

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/[email-masked]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches