android_kernel_xiaomi_sm8350/drivers
Arjan van de Ven d4d5291c8c driver synchronization: make scsi_wait_scan more advanced
There is currently only one way for userspace to say "wait for my storage
device to get ready for the modules I just loaded": to load the
scsi_wait_scan module. Expectations of userspace are that once this
module is loaded, all the (storage) devices for which the drivers
were loaded before the module load are present.

Now, there are some issues with the implementation, and the async
stuff got caught in the middle of this: The existing code only
waits for the scsy async probing to finish, but it did not take
into account at all that probing might not have begun yet.
(Russell ran into this problem on his computer and the fix works for him)

This patch fixes this more thoroughly than the previous "fix", which
had some bad side effects (namely, for kernel code that wanted to wait for
the scsi scan it would also do an async sync, which would deadlock if you did
it from async context already.. there's a report about that on lkml):
The patch makes the module first wait for all device driver probes, and then it
will wait for the scsi parallel scan to finish.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Tested-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-04-21 19:40:00 -07:00
..
accessibility
acpi PM/Suspend: Introduce two new platform callbacks to avoid breakage 2009-04-19 20:08:42 +02:00
amba
ata [libata] fix build error on drivers/ata/pata_legacy.c 2009-04-17 19:05:33 -04:00
atm
auxdisplay
base driver synchronization: make scsi_wait_scan more advanced 2009-04-21 19:40:00 -07:00
block USB: add reset endpoint operations 2009-04-17 10:50:27 -07:00
bluetooth
cdrom
char ipmi: add oem message handling 2009-04-21 13:41:48 -07:00
clocksource clocksource: pass clocksource to read() callback 2009-04-21 13:41:47 -07:00
connector
cpufreq
cpuidle
crypto
dca
dio
dma
edac edac: ppc mpc85xx fix mc err detect 2009-04-21 13:41:51 -07:00
eisa
firewire
firmware
gpio
gpu Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2009-04-20 08:42:48 -07:00
hid
hwmon
i2c
ide cs5536: define dma_sff_read_status() method 2009-04-18 17:42:20 +02:00
idle
ieee1394
infiniband
input drivers/input/serio/hp_sdc.c: fix crash when removing hp_sdc module 2009-04-21 13:41:49 -07:00
isdn USB: add reset endpoint operations 2009-04-17 10:50:27 -07:00
leds
lguest lguest: fix guest crash on non-linear addresses in gdt pvops 2009-04-19 23:14:01 +09:30
macintosh
mca
md Merge branch 'for-linus' of git://neil.brown.name/md 2009-04-20 08:37:37 -07:00
media USB: add reset endpoint operations 2009-04-17 10:50:27 -07:00
memstick
message scsi: mpt: suppress debugobjects warning 2009-04-21 13:41:50 -07:00
mfd
misc sgi-xp/sgi-gru: allow modules to load on non-uv systems 2009-04-21 13:41:50 -07:00
mmc
mtd
net Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-04-17 13:51:14 -07:00
nubus
of
oprofile
parisc parport: Fix various uses of parport_pc 2009-04-14 08:48:50 -07:00
parport
pci
pcmcia
platform
pnp
power
ps3
rapidio
regulator
rtc rtc-cmos: fix printk output 2009-04-21 13:41:50 -07:00
s390 [S390] dasd: fix idaw boundary checking for track based ccw 2009-04-14 15:37:25 +02:00
sbus sbus: changed ioctls to unlocked 2009-04-14 19:46:19 -07:00
scsi driver synchronization: make scsi_wait_scan more advanced 2009-04-21 19:40:00 -07:00
serial bfin_5xx: misplaced parentheses 2009-04-21 13:41:51 -07:00
sh
sn
spi spi: pxa2xx: limit reaches -1 2009-04-21 13:41:49 -07:00
ssb
staging go7007: Convert to the new i2c device binding model 2009-04-21 21:47:22 +02:00
tc
telephony
thermal
uio UIO: fix specific device driver missing statement for depmod 2009-04-16 16:17:11 -07:00
usb WUSB: correct format of wusb_chid sysfs file 2009-04-17 10:50:29 -07:00
uwb
video pxafb: lcsr1 is unused without CONFIG_FB_PXA_OVERLAY 2009-04-21 13:41:47 -07:00
virtio virtio: fix suspend when using virtio_balloon 2009-04-19 23:14:01 +09:30
w1
watchdog
xen
zorro
Kconfig
Makefile