linux/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 [PATCH] ieee1394: delete legacy module aliases 2005-09-30 12:41:19 -07:00
amdtp.h
cmp.c
cmp.h
config_roms.c
config_roms.h
csr1212.c [PATCH] Sync up ieee-1394 2005-07-10 12:23:23 -07:00
csr1212.h [PATCH] ieee1394: remove superfluous include in csr1212 2005-09-30 12:41:19 -07:00
csr.c [PATCH] Sync up ieee-1394 2005-07-10 12:23:23 -07:00
csr.h
dma.c [PATCH] Sync up ieee-1394 2005-07-10 12:23:23 -07:00
dma.h
dv1394-private.h
dv1394.c [PATCH] ieee1394: delete legacy module aliases 2005-09-30 12:41:19 -07:00
dv1394.h
eth1394.c [PATCH] eth1394: workaround limitation in rawiso routines 2005-09-30 12:41:19 -07:00
eth1394.h [PATCH] eth1394: workaround limitation in rawiso routines 2005-09-30 12:41:19 -07:00
highlevel.c
highlevel.h
hosts.c [PATCH] ieee1394: use time_before() 2005-09-30 12:41:19 -07:00
hosts.h [PATCH] ieee1394: trivial edits of a few comments 2005-09-30 12:41:19 -07:00
ieee1394_core.c [PATCH] ieee1394: fix for debug output 2005-09-30 12:41:19 -07:00
ieee1394_core.h ieee1394: fix broken signed char assumption. 2005-07-06 13:05:50 -07:00
ieee1394_hotplug.h
ieee1394_transactions.c
ieee1394_transactions.h
ieee1394_types.h
ieee1394-ioctl.h
ieee1394.h
iso.c [PATCH] Sync up ieee-1394 2005-07-10 12:23:23 -07:00
iso.h [PATCH] Sync up ieee-1394 2005-07-10 12:23:23 -07:00
Kconfig [PATCH] Sync up ieee-1394 2005-07-10 12:23:23 -07:00
Makefile
nodemgr.c [PATCH] ieee1394: skip unnecessary pause when scanning config ROMs 2005-09-30 12:41:19 -07:00
nodemgr.h
ohci1394.c [PATCH] raw1394: fix locking in the presence of SMP and interrupts 2005-10-19 23:04:30 -07:00
ohci1394.h
oui2c.sh
oui.db
pcilynx.c [PATCH] I2C: Drop debug eeprom dump code in pcilynx 2005-09-05 09:26:52 -07:00
pcilynx.h
raw1394-private.h
raw1394.c [PATCH] raw1394: fix locking in the presence of SMP and interrupts 2005-10-19 23:04:30 -07:00
raw1394.h
sbp2.c [PATCH] sbp2: default to serialize_io=1 2005-09-30 12:41:19 -07:00
sbp2.h
video1394.c [PATCH] ieee1394: delete legacy module aliases 2005-09-30 12:41:19 -07:00
video1394.h