linux-IllusionX/drivers/ieee1394
Andy Wingo 4a9949d7ac [PATCH] raw1394: fix locking in the presence of SMP and interrupts
Changes all spinlocks that can be held during an irq handler to disable
interrupts while the lock is held.  Changes spin_[un]lock_irq to use the
irqsave/irqrestore variants for robustness and readability.

In raw1394.c:handle_iso_listen(), don't grab host_info_lock at all -- we're
not accessing host_info_list or host_count, and holding this lock while
trying to tasklet_kill the iso tasklet this can cause an ABBA deadlock if
ohci:dma_rcv_tasklet is running and tries to grab host_info_lock in
raw1394.c:receive_iso.  Test program attached reliably deadlocks all SMP
machines I have been able to test without this patch.

Signed-off-by: Andy Wingo <wingo@pobox.com>
Acked-by: Ben Collins <bcollins@ubuntu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-19 23:04:30 -07:00
..
amdtp.c
amdtp.h
cmp.c
cmp.h
config_roms.c
config_roms.h
csr.c
csr.h
csr1212.c
csr1212.h
dma.c
dma.h
dv1394-private.h
dv1394.c
dv1394.h
eth1394.c
eth1394.h
highlevel.c
highlevel.h
hosts.c
hosts.h
ieee1394-ioctl.h
ieee1394.h
ieee1394_core.c
ieee1394_core.h
ieee1394_hotplug.h
ieee1394_transactions.c
ieee1394_transactions.h
ieee1394_types.h
iso.c
iso.h
Kconfig
Makefile
nodemgr.c
nodemgr.h
ohci1394.c
ohci1394.h
oui.db
oui2c.sh
pcilynx.c
pcilynx.h
raw1394-private.h
raw1394.c
raw1394.h
sbp2.c
sbp2.h
video1394.c
video1394.h