Search Linux Wireless

Re: [v2] rtlwifi: Fix kernel Oops "Fw download fail!!"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ping-Ke Shih <pkshih@xxxxxxxxxxx> wrote:

> From: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
> 
> When connecting to AP, mac80211 asks driver to enter and leave PS quickly,
> but driver deinit doesn't wait for delayed work complete when entering PS,
> then driver reinit procedure and delay work are running simultaneously.
> This will cause unpredictable kernel oops or crash like
> 
> rtl8723be: error H2C cmd because of Fw download fail!!!
> WARNING: CPU: 3 PID: 159 at drivers/net/wireless/realtek/rtlwifi/
> 	 rtl8723be/fw.c:227 rtl8723be_fill_h2c_cmd+0x182/0x510 [rtl8723be]
> CPU: 3 PID: 159 Comm: kworker/3:2 Tainted: G       O     4.16.13-2-ARCH #1
> Hardware name: ASUSTeK COMPUTER INC. X556UF/X556UF, BIOS X556UF.406
> 	       10/21/2016
> Workqueue: rtl8723be_pci rtl_c2hcmd_wq_callback [rtlwifi]
> RIP: 0010:rtl8723be_fill_h2c_cmd+0x182/0x510 [rtl8723be]
> RSP: 0018:ffffa6ab01e1bd70 EFLAGS: 00010282
> RAX: 0000000000000000 RBX: ffffa26069071520 RCX: 0000000000000001
> RDX: 0000000080000001 RSI: ffffffff8be70e9c RDI: 00000000ffffffff
> RBP: 0000000000000000 R08: 0000000000000048 R09: 0000000000000348
> R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000
> R13: ffffa26069071520 R14: 0000000000000000 R15: ffffa2607d205f70
> FS:  0000000000000000(0000) GS:ffffa26081d80000(0000) knlGS:000000000000000
> CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00000443b39d3000 CR3: 000000037700a005 CR4: 00000000003606e0
> Call Trace:
>  ? halbtc_send_bt_mp_operation.constprop.17+0xd5/0xe0 [btcoexist]
>  ? ex_btc8723b1ant_bt_info_notify+0x3b8/0x820 [btcoexist]
>  ? rtl_c2hcmd_launcher+0xab/0x110 [rtlwifi]
>  ? process_one_work+0x1d1/0x3b0
>  ? worker_thread+0x2b/0x3d0
>  ? process_one_work+0x3b0/0x3b0
>  ? kthread+0x112/0x130
>  ? kthread_create_on_node+0x60/0x60
>  ? ret_from_fork+0x35/0x40
> Code: 00 76 b4 e9 e2 fe ff ff 4c 89 ee 4c 89 e7 e8 56 22 86 ca e9 5e ...
> 
> This patch ensures all delayed works done before entering PS to satisfy
> our expectation, so use cancel_delayed_work_sync() instead. An exception
> is delayed work ips_nic_off_wq because running task may be itself, so add
> a parameter ips_wq to deinit function to handle this case.
> 
> This issue is reported and fixed in below threads:
> https://github.com/lwfinger/rtlwifi_new/issues/367
> https://github.com/lwfinger/rtlwifi_new/issues/366
> 
> Tested-by: Evgeny Kapun <abacabadabacaba@xxxxxxxxx> # 8723DE
> Tested-by: Shivam Kakkar <shivam543@xxxxxxxxx> # 8723BE on 4.18-rc1
> Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
> Fixes: cceb0a597320 ("rtlwifi: Add work queue for c2h cmd.")
> Cc: Stable <stable@xxxxxxxxxxxxxxx> # 4.11+
> Reviewed-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>

Patch applied to wireless-drivers.git, thanks.

12dfa2f68ab6 rtlwifi: Fix kernel Oops "Fw download fail!!"

-- 
https://patchwork.kernel.org/patch/10481279/

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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux