1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/wireless/realtek/rtlwifi
Larry Finger 893dc68f1b rtlwifi: Fix scheduling while atomic splat
Following commit cceb0a5973 ("rtlwifi: Add work queue for c2h cmd."),
the following BUG is reported when rtl8723be is used:

BUG: sleeping function called from invalid context at mm/slab.h:432
in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/0
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W  O    4.11.0-rc3-wl+ #276
Hardware name: TOSHIBA TECRA A50-A/TECRA A50-A, BIOS Version 4.50   09/29/2014
Call Trace:
 <IRQ>
 dump_stack+0x63/0x89
 ___might_sleep+0xe9/0x130
 __might_sleep+0x4a/0x90
 kmem_cache_alloc_trace+0x19f/0x200
 ? rtl_c2hcmd_enqueue+0x3e/0x110 [rtlwifi]
 rtl_c2hcmd_enqueue+0x3e/0x110 [rtlwifi]
 rtl8723be_c2h_packet_handler+0xac/0xc0 [rtl8723be]
 rtl8723be_rx_command_packet+0x37/0x5c [rtl8723be]
 _rtl_pci_rx_interrupt+0x200/0x6b0 [rtl_pci]
 _rtl_pci_interrupt+0x20c/0x5d0 [rtl_pci]
 __handle_irq_event_percpu+0x3f/0x1d0
 handle_irq_event_percpu+0x23/0x60
 handle_irq_event+0x3c/0x60
 handle_fasteoi_irq+0xa2/0x170
 handle_irq+0x20/0x30
 do_IRQ+0x48/0xd0
 common_interrupt+0x89/0x89
...

Although commit cceb0a5973 converted most c2h commands to use a work
queue, the Bluetooth coexistence routines can be in atomic mode when
they execute such a call.

Fixes: cceb0a5973 ("rtlwifi: Add work queue for c2h cmd.")
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2017-03-30 19:43:01 +03:00
..
btcoexist rtlwifi: btcoexist: Fix if == else warnings in halbtc8723b1ant.c 2017-02-15 11:14:44 +02:00
rtl8188ee rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
rtl8192c rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
rtl8192ce wireless-drivers-next patches for 4.11 2017-02-10 13:47:52 -05:00
rtl8192cu rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
rtl8192de rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
rtl8192ee rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
rtl8192se scripts/spelling.txt: add "aligment" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
rtl8723ae rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
rtl8723be rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
rtl8723com rtlwifi: Download firmware as bytes rather than as dwords 2017-01-20 12:06:09 +02:00
rtl8821ae rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
base.c rtlwifi: Fix scheduling while atomic splat 2017-03-30 19:43:01 +03:00
base.h rtlwifi: Add work queue for c2h cmd. 2017-02-07 09:25:08 +02:00
cam.c rtlwifi: Fix programing CAM content sequence. 2017-02-07 09:25:08 +02:00
cam.h rtlwifi: rtl818x: Move drivers into new realtek directory 2015-10-14 13:33:10 +03:00
core.c rtlwifi: Set retry limit depends on vif type. 2017-02-07 09:25:08 +02:00
core.h rtlwifi: rtl818x: Move drivers into new realtek directory 2015-10-14 13:33:10 +03:00
debug.c rtlwifi: Convert COMP_XX entries into a proper debugging mask 2017-01-20 12:05:17 +02:00
debug.h rtlwifi: Convert COMP_XX entries into a proper debugging mask 2017-01-20 12:05:17 +02:00
efuse.c rtlwifi: rtl8723be: btcoex: add package_type function to btcoex 2017-02-07 09:25:08 +02:00
efuse.h rtlwifi: rtl8723be: btcoex: add package_type function to btcoex 2017-02-07 09:25:08 +02:00
Kconfig rtlwifi: rtl818x: Move drivers into new realtek directory 2015-10-14 13:33:10 +03:00
Makefile Makefile: drop -D__CHECK_ENDIAN__ from cflags 2016-12-16 00:13:43 +02:00
pci.c rtlwifi: Set retry limit depends on vif type. 2017-02-07 09:25:08 +02:00
pci.h rtlwifi: rtl8192c-common: Fix "BUG: KASAN: 2017-02-07 10:07:59 +02:00
ps.c rtlwifi: Set retry limit depends on vif type. 2017-02-07 09:25:08 +02:00
ps.h rtlwifi: Remove unused parameter from rtl_ps_set_rf_state() 2016-07-05 17:31:41 +03:00
pwrseqcmd.h rtlwifi: rtl818x: Move drivers into new realtek directory 2015-10-14 13:33:10 +03:00
rc.c rtlwifi: Remove RT_TRACE messages that use DBG_EMERG 2016-12-30 15:54:20 +02:00
rc.h rtlwifi: rtl818x: Move drivers into new realtek directory 2015-10-14 13:33:10 +03:00
regd.c rtlwifi: fix spelling mistake: "contry" -> "country" 2016-12-30 15:57:25 +02:00
regd.h rtlwifi: rtl818x: Move drivers into new realtek directory 2015-10-14 13:33:10 +03:00
stats.c rtlwifi: use s8 instead of char 2016-06-29 18:48:15 +03:00
stats.h rtlwifi: use s8 instead of char 2016-06-29 18:48:15 +03:00
usb.c wireless-drivers-next patches for 4.11 2017-02-01 12:46:17 -05:00
usb.h rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00
wifi.h rtlwifi: Move items out of rtl_pci_priv and rtl_usb_priv 2017-02-08 17:24:42 +02:00