mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-22 18:44:44 +08:00
30899cc6ab
The current version of rtlwifi for USB operations uses kmalloc to acquire a 32-bit buffer for each read of the device. When _usb_read_sync() is called with the rcu_lock held, the result is a "sleeping function called from invalid context" BUG. This is reported for two cases in https://bugzilla.kernel.org/show_bug.cgi?id=42775. The first case has the lock originating from within rtlwifi and could be fixed by rearranging the locking; however, the second originates from within mac80211. The kmalloc() call is removed from _usb_read_sync() by creating a ring buffer pointer in the private area and allocating the buffer data in the probe routine. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@vger.kernel.org> [This version good for 3.3+ - different patch for 3.2 - 2.6.39] Signed-off-by: John W. Linville <linville@tuxdriver.com> |
||
---|---|---|
.. | ||
rtl8192c | ||
rtl8192ce | ||
rtl8192cu | ||
rtl8192de | ||
rtl8192se | ||
base.c | ||
base.h | ||
cam.c | ||
cam.h | ||
core.c | ||
core.h | ||
debug.c | ||
debug.h | ||
efuse.c | ||
efuse.h | ||
Kconfig | ||
Makefile | ||
pci.c | ||
pci.h | ||
ps.c | ||
ps.h | ||
rc.c | ||
rc.h | ||
regd.c | ||
regd.h | ||
usb.c | ||
usb.h | ||
wifi.h |