linux/drivers
David Fries c30c9b1518 W1: fix deadlocks and remove w1_control_thread
w1_control_thread was removed which would wake up every second and process
newly registered family codes and complete some final cleanup for a
removed master.  Those routines were moved to the threads that were
previously requesting those operations.  A new function
w1_reconnect_slaves takes care of reconnecting existing slave devices when
a new family code is registered or removed.  The removal case was missing
and would cause a deadlock waiting for the family code reference count to
decrease, which will now happen.  A problem with registering a family code
was fixed.  A slave device would be unattached if it wasn't yet claimed,
then attached at the end of the list, two unclaimed slaves would cause an
infinite loop.

The struct w1_bus_master.search now takes a pointer to the struct
w1_master device to avoid searching for it, which would have caused a
lock ordering deadlock with the removal of w1_control_thread.

Signed-off-by: David Fries <david@fries.net>
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-16 11:21:49 -07:00
..
accessibility braille_console: only register notifiers when the braille console is used 2008-10-02 15:53:13 -07:00
acpi rtc-cmos: move wake setup from ACPI glue into RTC driver 2008-10-14 16:08:21 -07:00
amba
ata Merge commit 'origin' 2008-10-15 11:31:54 +11:00
atm Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
auxdisplay
base firmware: use dev_printk when possible 2008-10-16 11:21:47 -07:00
block Merge commit 'origin' 2008-10-15 11:31:54 +11:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2008-10-13 14:12:40 -07:00
cdrom gdrom: change to use __blk_end_request() 2008-10-09 08:56:21 +02:00
char drivers/char/tpm/tpm.c: fix error-path memory leak 2008-10-16 11:21:49 -07:00
clocksource
connector
cpufreq [CPUFREQ] Fix BUG: using smp_processor_id() in preemptible code 2008-10-09 13:52:44 -04:00
cpuidle
crypto
dca
dio
dma dw_dmac: fix copy/paste bug in tasklet 2008-10-03 18:22:18 -07:00
edac edac i5000: fix thermal issues 2008-10-16 11:21:48 -07:00
eisa
firewire
firmware
gpio gpiolib: request/free hooks 2008-10-16 11:21:40 -07:00
gpu misc: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
hid HID: build drivers for all quirky devices by default 2008-10-14 23:51:05 +02:00
hwmon Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2008-10-15 08:07:35 -07:00
i2c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2008-10-15 08:07:35 -07:00
ide Kconfig: eliminate "def_bool n" constructs 2008-10-16 11:21:31 -07:00
ieee1394
infiniband vfs: Use const for kernel parser table 2008-10-13 10:10:37 -07:00
input omap drivers: switch to standard GPIO calls 2008-10-16 11:21:40 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-10-14 10:28:49 -07:00
leds Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
lguest
macintosh
mca
md raid, fastboot: hide RAID autodetect option if MD is compiled as a module 2008-10-12 08:25:14 -07:00
media Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2008-10-13 14:03:59 -07:00
memstick memstick: change to use __blk_end_request() 2008-10-09 08:56:20 +02:00
message i2o: Fix 32/64bit DMA locking 2008-10-16 11:21:38 -07:00
mfd mfd: Fix warning in WM8350 2008-10-13 21:51:57 +01:00
misc AT91: atmel_pwm only available for certain AT91 processors 2008-10-16 11:21:32 -07:00
mmc Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-13 17:13:56 +01:00
mtd omap drivers: switch to standard GPIO calls 2008-10-16 11:21:40 -07:00
net Remove Andrew Morton's old email accounts 2008-10-16 11:21:32 -07:00
nubus nubus: fix mis-indented statement 2008-10-16 11:21:30 -07:00
of Merge commit 'gcl/gcl-next' 2008-10-14 10:11:27 +11:00
oprofile Merge branch 'linus' into oprofile-v2 2008-10-13 11:05:51 +02:00
parisc
parport parport: remove CVS keywords 2008-10-16 11:21:49 -07:00
pci Merge commit 'origin' 2008-10-15 11:31:54 +11:00
pcmcia Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2008-10-13 14:12:40 -07:00
pnp pnp: make the resource type an unsigned long 2008-10-16 11:21:45 -07:00
power olpc: olpc_battery.c sparse endian annotations 2008-10-16 11:21:30 -07:00
ps3
rapidio
regulator da903x: add regulator support for DA9030/DA9034 2008-10-13 21:51:57 +01:00
rtc rtc-ds1672 new style driver 2008-10-16 11:21:40 -07:00
s390 misc: replace __FUNCTION__ with __func__ 2008-10-16 11:21:30 -07:00
sbus
scsi m68k: Atari SCSI needs NVRAM 2008-10-14 10:23:27 -07:00
serial Merge commit 'origin' 2008-10-15 11:31:54 +11:00
sh
sn
spi spi: core and gpio expanders use subsys_init 2008-10-16 11:21:38 -07:00
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2008-10-13 14:12:40 -07:00
tc
telephony telephony: remove CVS keywords 2008-10-16 11:21:45 -07:00
thermal
uio
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2008-10-13 14:12:40 -07:00
video fbcon_set_all_vcs: fix kernel crash when switching the rotated consoles 2008-10-16 11:21:45 -07:00
virtio
w1 W1: fix deadlocks and remove w1_control_thread 2008-10-16 11:21:49 -07:00
watchdog Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog 2008-10-12 11:51:32 -07:00
xen xen: remove unused balloon.h 2008-10-03 10:04:10 +02:00
zorro
Kconfig
Makefile