linux/drivers
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
..
accessibility
acpi
amba
ata 1) AHCI regression fix. A recent "make driver conform to spec" change 2012-03-22 20:22:30 -07:00
atm
auxdisplay
base The following text was taken from the original review request: 2012-03-24 10:41:37 -07:00
bcma
block One tiny feature that accidentally got lost in the initial git pull: 2012-03-24 12:20:25 -07:00
bluetooth
cdrom
char ARM: global cleanups 2012-03-27 16:03:32 -07:00
clk
clocksource ARM: device tree work 2012-03-27 16:47:35 -07:00
connector
cpufreq Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq 2012-03-23 17:56:39 -07:00
cpuidle
crypto Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2012-03-22 18:15:32 -07:00
dca
devfreq ARM: global cleanups 2012-03-27 16:03:32 -07:00
dio
dma The following text was taken from the original review request: 2012-03-24 10:24:31 -07:00
edac The following text was taken from the original review request: 2012-03-24 10:41:37 -07:00
eisa
firewire IEEE 1394 (FireWire) subsystem updates post v3.3: 2012-03-22 20:31:15 -07:00
firmware
gpio ARM: driver specific updates 2012-03-27 16:41:24 -07:00
gpu The following text was taken from the original review request: 2012-03-24 10:08:39 -07:00
hid Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-03-23 14:39:09 -07:00
hv
hwmon hwmon: Add MCP3021 ADC driver 2012-03-23 10:02:20 +01:00
hwspinlock
i2c ARM: device tree work 2012-03-27 16:47:35 -07:00
ide
idle drivers/idle/intel_idle.c: fix confusing code identation 2012-03-21 17:54:54 -07:00
ieee802154
infiniband Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2012-03-22 12:38:04 -07:00
input ARM: board specific updates 2012-03-27 16:27:28 -07:00
iommu The IOMMU updates for this round are not very large patch-wise. But 2012-03-23 14:15:07 -07:00
isdn
leds ARM: board specific updates 2012-03-27 16:27:28 -07:00
lguest
macintosh Core device tree changes for Linux v3.4 2012-03-21 10:30:03 -07:00
mca
md md updates for 3.4 2012-03-22 12:29:50 -07:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-03-23 14:39:09 -07:00
memstick
message
mfd The following text was taken from the original review request: 2012-03-24 10:41:37 -07:00
misc ARM: device tree work 2012-03-27 16:47:35 -07:00
mmc ARM: driver specific updates 2012-03-27 16:41:24 -07:00
mtd ARM: board specific updates 2012-03-27 16:27:28 -07:00
net rtlwifi: Preallocate USB read buffers and eliminate kalloc in read routine 2012-04-09 16:12:31 -04:00
nfc
nubus
of Merge branch 'for-armsoc' of git://git.linaro.org/people/rmk/linux-arm 2012-03-23 17:30:49 -07:00
oprofile
parisc Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
parport
pci Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
pcmcia ARM: device tree work 2012-03-27 16:47:35 -07:00
pinctrl
platform Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
pnp
power The following text was taken from the original review request: 2012-03-24 10:41:37 -07:00
pps
ps3
ptp
rapidio
regulator ARM: driver specific updates 2012-03-27 16:41:24 -07:00
remoteproc
rpmsg
rtc ARM: device tree work 2012-03-27 16:47:35 -07:00
s390 s390/char: use for_each_clear_bit() 2012-03-23 16:58:34 -07:00
sbus
scsi Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
sfi
sh
sn
spi ARM: global cleanups 2012-03-27 16:03:32 -07:00
ssb
staging The following text was taken from the original review request: 2012-03-24 10:24:31 -07:00
target Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2012-03-22 12:38:04 -07:00
tc
thermal
tty ARM: device tree work 2012-03-27 16:47:35 -07:00
uio
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-03-27 16:52:32 -07:00
uwb uwb: use for_each_clear_bit() 2012-03-23 16:58:34 -07:00
vhost Merge branch 'vhost-net' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost 2012-03-23 14:46:48 -04:00
video ARM: board specific updates 2012-03-27 16:27:28 -07:00
virt
virtio
vlynq
w1
watchdog ARM: device tree work 2012-03-27 16:47:35 -07:00
xen One tiny feature that accidentally got lost in the initial git pull: 2012-03-24 12:20:25 -07:00
zorro
Kconfig remoteproc/rpmsg: new subsystem 2012-03-27 16:30:09 -07:00
Makefile remoteproc/rpmsg: new subsystem 2012-03-27 16:30:09 -07:00