android_kernel_xiaomi_sm8350/drivers
Larry Finger 7dcdd073bf rtl8187: Fix lockups due to concurrent access to config routine
Some users of the RTL8187B have experienced difficulties since commit
49292d5635 that introduced the power
management wext hooks. This difficulty has not made much sense until
it was realized that it was possible for mac80211 to make a call to the
config routine while that routine was already being executed. On this
device, it is necessary to loopback the TX when changing channels. Unless
this is properly restored, the device will lockup. A mutex now protects
the device state, and the private data in several places.

The problem was found by Herton Ronaldo Krzesinski <herton@mandriva.com.br>,
who also suggested this type of fix.

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Acked-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2008-08-01 15:31:35 -04:00
..
accessibility
acpi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2008-07-28 18:14:24 -07:00
amba
ata [ARM] 5179/1: Replace obsolete IRQT_* and __IRQT_* values with IRQ_TYPE_* 2008-07-27 09:46:18 +01:00
atm atm: fix direct casts of pointers to u32 in the InterPhase driver 2008-07-30 16:33:05 -07:00
auxdisplay auxdisplay: small cleanups 2008-07-24 10:47:41 -07:00
base more sysdev API change fallout - drivers/base/memory.c 2008-07-28 08:31:58 -07:00
block aoe: convert emsgs_sema into a completion 2008-07-25 10:53:45 -07:00
bluetooth bluetooth: add quirks for a few hci_usb devices 2008-07-30 17:19:35 -07:00
cdrom
char ipwireless: fix compile failure 2008-07-28 15:12:37 -07:00
clocksource
connector
cpufreq Merge branch 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-07-23 18:37:44 -07:00
cpuidle ACPI/CPUIDLE: prevent setting pm_idle to NULL 2008-07-28 08:31:58 -07:00
crypto
dca Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2008-07-23 12:03:18 -07:00
dio
dma I/OAT: I/OAT version 3.0 support 2008-07-22 17:30:57 -07:00
edac edac: mpc85xx fix pci ofdev 2nd pass 2008-07-25 10:53:49 -07:00
eisa
firewire Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2008-07-27 10:24:06 -07:00
firmware Merge branch 'linus' into cpus4096 2008-07-28 21:14:43 +02:00
gpio gpio: max732x driver 2008-07-25 10:53:30 -07:00
gpu drm: make drm_minors_cleanup() static 2008-07-26 12:00:11 -07:00
hid Merge branches 'upstream' and 'upstream-fixes' into for-linus 2008-07-23 15:26:10 +02:00
hwmon
i2c i2c: Blackfin I2C Driver: Functional power management support 2008-07-28 12:41:03 +01:00
ide ide: use proper printk() KERN_* levels in ide-probe.c 2008-07-24 22:53:36 +02:00
ieee1394 PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
infiniband Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2008-07-26 20:40:36 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2008-07-28 09:59:26 -07:00
isdn hysdn: remove the packed attribute from PofTimStamp_tag 2008-07-30 16:48:05 -07:00
leds leds: Ensure led->trigger is set earlier 2008-07-23 09:49:56 +01:00
lguest lguest: use cpu capability accessors 2008-07-29 09:58:34 +10:00
macintosh
mca
md [SCSI] scsi_dh: attach to hardware handler from dm-mpath 2008-07-26 15:14:53 -04:00
media V4L/DVB (8549): mxl5007: Fix an error at include file 2008-07-27 19:36:08 -03:00
memstick memstick: use fully asynchronous request processing 2008-07-26 12:00:04 -07:00
message Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-07-27 10:04:52 -07:00
mfd mfd: accept pure device as a parent, not only platform_device 2008-07-29 01:30:26 +02:00
misc Merge branch 'linus' into cpus4096 2008-07-28 21:14:43 +02:00
mmc avr32: some mmc/sd cleanups 2008-07-27 13:57:36 +02:00
mtd Merge git://git.infradead.org/mtd-2.6 2008-07-26 20:30:56 -07:00
net rtl8187: Fix lockups due to concurrent access to config routine 2008-08-01 15:31:35 -04:00
nubus
of spi: Add OF binding support for SPI busses 2008-07-25 22:34:40 -04:00
oprofile
parisc
parport make parport_cs_release() static 2008-07-26 12:00:11 -07:00
pci PCI: add D3 power state avoidance quirk 2008-07-28 15:12:11 -07:00
pcmcia [ARM] 5179/1: Replace obsolete IRQT_* and __IRQT_* values with IRQ_TYPE_* 2008-07-27 09:46:18 +01:00
pnp make pnp_add_card_id() static 2008-07-26 12:00:11 -07:00
power drivers/power: fix platform driver hotplug/coldplug 2008-07-25 10:53:28 -07:00
ps3
rapidio
rtc rtc-vr41xx: add irq_set_freq() and irq_set_state() 2008-07-24 10:47:34 -07:00
s390 KVM: s390: Fix guest kconfig 2008-07-27 11:35:47 +03:00
sbus
scsi [SCSI] qla2xxx: fix msleep compile error 2008-07-28 10:13:22 -05:00
serial sh: Add SCIF2 support for SH7763. 2008-07-28 18:10:29 +09:00
sh
sn
spi spi_s3c24xx: really assign busnum 2008-07-28 16:30:21 -07:00
ssb
tc
telephony ixj: push BKL into driver and wrap ioctls 2008-07-25 10:53:43 -07:00
thermal
uio
usb fix for a memory leak in an error case introduced by fix for double free 2008-07-26 20:40:09 -07:00
video sh7760fb: write colormap value to hardware 2008-07-28 16:30:21 -07:00
virtio virtio: Add transport feature handling stub for virtio_ring. 2008-07-25 12:06:14 +10:00
w1
watchdog remove the v850 port 2008-07-24 10:47:24 -07:00
xen
zorro move memory_read_from_buffer() from fs.h to string.h 2008-07-24 10:47:13 -07:00
Kconfig
Makefile gpiolib: allow user-selection 2008-07-25 10:53:30 -07:00