linux/drivers/net/wireless/rtlwifi
Larry Finger 30899cc6ab rtlwifi: Preallocate USB read buffers and eliminate kalloc in read routine
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>
2012-04-09 16:12:31 -04:00
..
rtl8192c rtlwifi: rtl8192ce: rtl8192cu: rtl8192de: Fix low-gain setting when scanning 2012-03-26 15:07:30 -04:00
rtl8192ce rtlwifi: Remove unused ETH_ADDR_LEN defines 2012-03-19 16:53:09 -04:00
rtl8192cu drivers/net: Remove boolean comparisons to true/false 2012-02-13 00:47:40 -05:00
rtl8192de rtlwifi: rtl8192ce: rtl8192cu: rtl8192de: Fix low-gain setting when scanning 2012-03-26 15:07:30 -04:00
rtl8192se Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-03-05 15:05:54 -05:00
base.c Correcting typos in rtlwifi/base.c 2012-02-22 14:48:49 -05:00
base.h rtlwifi: Update copyright dates 2012-01-24 14:08:37 -05:00
cam.c rtlwifi: Use is_zero_ether_addr, remove line continuation 2012-04-09 16:07:36 -04:00
cam.h rtlwifi: Update copyright dates 2012-01-24 14:08:37 -05:00
core.c rtlwifi: Remove extra debugging message accidentally left in 2012-02-06 14:53:09 -05:00
core.h rtlwifi: Convert to asynchronous firmware load 2012-01-30 15:48:50 -05:00
debug.c rtlwifi: Move pr_fmt macros to a single location 2012-01-30 15:48:23 -05:00
debug.h rtlwifi: Update copyright dates 2012-01-24 14:08:37 -05:00
efuse.c drivers/net: Remove boolean comparisons to true/false 2012-02-13 00:47:40 -05:00
efuse.h rtlwifi: Update copyright dates 2012-01-24 14:08:37 -05:00
Kconfig rtlwifi: Fix breakage in debug functions when built as a module 2012-02-27 14:05:45 -05:00
Makefile rtlwifi: rtl8192de: Modify Kconfig and Makefile routines for new driver 2011-06-27 15:09:38 -04:00
pci.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-02-19 16:03:15 -05:00
pci.h rtlwifi: Convert to asynchronous firmware load 2012-01-30 15:48:50 -05:00
ps.c drivers/net: Remove boolean comparisons to true/false 2012-02-13 00:47:40 -05:00
ps.h rtlwifi: Update copyright dates 2012-01-24 14:08:37 -05:00
rc.c rtlwifi: Update copyright dates 2012-01-24 14:08:37 -05:00
rc.h rtlwifi: Update copyright dates 2012-01-24 14:08:37 -05:00
regd.c rtlwifi: Update copyright dates 2012-01-24 14:08:37 -05:00
regd.h rtlwifi: Update copyright dates 2012-01-24 14:08:37 -05:00
usb.c rtlwifi: Preallocate USB read buffers and eliminate kalloc in read routine 2012-04-09 16:12:31 -04:00
usb.h rtlwifi: Move pr_fmt macros to a single location 2012-01-30 15:48:23 -05:00
wifi.h rtlwifi: Preallocate USB read buffers and eliminate kalloc in read routine 2012-04-09 16:12:31 -04:00