android_kernel_xiaomi_sm8350/drivers
Stefan Richter 8252bbb136 ieee1394: nodemgr: fix deadlock in shutdown
If "modprobe ohci1394" was quickly followed by "modprobe -r ohci1394",
say with 1 second pause in between, the modprobe -r got stuck in
uninterruptible sleep in kthread_stop.  At the same time the knodemgrd
slept uninterruptibly in bus_rescan_devices_helper.  That's because
driver_detach took the semaphore of the PCI device and
bus_rescan_devices_helper wanted to take the semaphore of the FireWire
host device's parent, which is the same semaphore. This was a regression
since Linux 2.6.16, commit bf74ad5bc4,
"Hold the device's parent's lock during probe and remove".

The fix (or workaround) adds a dummy driver to the hpsb_host device. Now
bus_rescan_devices_helper won't scan the host device anymore.  This
doesn't hurt since we have no drivers which will bind to these devices
and it is unlikely that there will ever be such a driver.  The dummy
driver is befittingly presented as a representation of ieee1394 itself.

Fixes: http://bugzilla.kernel.org/show_bug.cgi?id=6706

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2006-12-07 23:10:23 +01:00
..
acorn
acpi
amba
ata [PATCH] libata: Incorrect timing computation for PIO5/6 2006-12-07 07:37:07 -05:00
atm Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2006-12-07 09:05:15 -08:00
base Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
block Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2006-12-07 09:05:15 -08:00
bluetooth [PATCH] lockdep: annotate bcsp driver 2006-12-07 08:39:34 -08:00
cdrom [PATCH] drivers/cdrom/*: trivial vsnprintf() conversion 2006-12-07 08:39:35 -08:00
char [PATCH] IPMI: fix PROC_FS=n warnings 2006-12-07 08:39:48 -08:00
clocksource
connector
cpufreq [PATCH] hotplug CPU: clean up hotcpu_notifier() use 2006-12-07 08:39:39 -08:00
crypto [CRYPTO] geode: Make needlessly global geode_aes_crypt() static 2006-12-06 18:38:53 -08:00
dio
dma [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
edac [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
eisa
fc4
firmware
hwmon
i2c [PATCH] ... and more work_struct-induced breakage (mips) 2006-12-06 14:51:14 -08:00
ide [PATCH] winbond IDE depends on IDEDMA 2006-12-07 08:39:43 -08:00
ieee1394 ieee1394: nodemgr: fix deadlock in shutdown 2006-12-07 23:10:23 +01:00
infiniband [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
input [PATCH] Correct misc_register return code handling in several drivers 2006-12-07 08:39:35 -08:00
isdn [PATCH] make 1-bit bitfields unsigned 2006-12-07 08:39:38 -08:00
leds [PATCH] PCEngines WRAP LED Support 2006-12-07 08:39:36 -08:00
macintosh [PATCH] Correct misc_register return code handling in several drivers 2006-12-07 08:39:35 -08:00
mca
md Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2006-12-07 09:05:15 -08:00
media [PATCH] make 1-bit bitfields unsigned 2006-12-07 08:39:38 -08:00
message [PATCH] kernel-doc: fix fusion and i2o docs 2006-12-07 08:39:40 -08:00
mfd [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
misc [PATCH] tifm: fix NULL ptr and style 2006-12-07 08:39:33 -08:00
mmc
mtd [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
net Add "run_scheduled_work()" workqueue function 2006-12-07 09:28:19 -08:00
nubus
oprofile
parisc
parport [PATCH] parport: section mismatches with HOTPLUG=n 2006-12-07 08:39:40 -08:00
pci [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
pcmcia [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
pnp Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
ps3
rapidio
rtc [PATCH] rtc: ds1743 support 2006-12-07 08:39:43 -08:00
s390 [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
sbus
scsi [PATCH] ide_scsi: allow it to be used for non CD only 2006-12-07 08:39:43 -08:00
serial [PATCH] amba-pl010: clear error flags on rx error 2006-12-07 08:39:44 -08:00
sh
sn
spi [PATCH] spi: check platform_device_register_simple() error 2006-12-07 08:39:42 -08:00
tc
telephony
usb [PATCH] Add include/linux/freezer.h and move definitions from sched.h 2006-12-07 08:39:27 -08:00
video [PATCH] Trivial cleanup in the PCI IDs for the CS5535 2006-12-07 08:39:44 -08:00
w1 [PATCH] better CONFIG_W1_SLAVE_DS2433_CRC handling 2006-12-07 08:39:43 -08:00
zorro
Kconfig
Makefile