1
0
Fork 0
alistair23-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
..
Kconfig [PATCH] Sync up ieee-1394 2005-07-10 12:23:23 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amdtp.c [PATCH] ieee1394: delete legacy module aliases 2005-09-30 12:41:19 -07:00
amdtp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cmp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cmp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
config_roms.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
config_roms.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
csr.c [PATCH] Sync up ieee-1394 2005-07-10 12:23:23 -07:00
csr.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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
dma.c [PATCH] Sync up ieee-1394 2005-07-10 12:23:23 -07:00
dma.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dv1394-private.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dv1394.c [PATCH] ieee1394: delete legacy module aliases 2005-09-30 12:41:19 -07:00
dv1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
highlevel.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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-ioctl.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ieee1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ieee1394_transactions.c [PATCH] ieee1394: drivers/ieee1394/ieee1394_transactions.c: possible cleanups 2005-05-17 07:59:22 -07:00
ieee1394_transactions.h [PATCH] ieee1394: drivers/ieee1394/ieee1394_transactions.c: possible cleanups 2005-05-17 07:59:22 -07:00
ieee1394_types.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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
nodemgr.c [PATCH] ieee1394: skip unnecessary pause when scanning config ROMs 2005-09-30 12:41:19 -07:00
nodemgr.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ohci1394.c [PATCH] raw1394: fix locking in the presence of SMP and interrupts 2005-10-19 23:04:30 -07:00
ohci1394.h [PATCH] ieee1394: fix cross_bound check for null ISO packets 2005-05-17 07:59:23 -07:00
oui.db Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
oui2c.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcilynx.c [PATCH] I2C: Drop debug eeprom dump code in pcilynx 2005-09-05 09:26:52 -07:00
pcilynx.h [PATCH] ieee1394: drivers/ieee1394/pcilynx.c: remove dead options 2005-05-17 07:59:22 -07:00
raw1394-private.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
raw1394.c [PATCH] raw1394: fix locking in the presence of SMP and interrupts 2005-10-19 23:04:30 -07:00
raw1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sbp2.c [PATCH] sbp2: default to serialize_io=1 2005-09-30 12:41:19 -07:00
sbp2.h [SCSI] TYPE_RBC cache fixes (sbp2.c affected) 2005-05-26 08:41:15 -05:00
video1394.c [PATCH] ieee1394: delete legacy module aliases 2005-09-30 12:41:19 -07:00
video1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00