linux/drivers/ieee1394
Stefan Richter 2cccbb555c ieee1394: sbp2: prevent rare deadlock in shutdown
Scsi_remove_device() may go into uninterruptible sleep if blocked.
Therefore sbp2_remove() unblocks the Scsi_Host before the device is
requested to be removed.  But there could be another 1394 bus reset
after that which would block the host again.  The 1394 subsystem won't
call sbp2_update() concurrently to sbp2_remove(), which is why there is
no chance for sbp2_remove() to be unblocked by sbp2_update().

The fix is to tell sbp2's bus reset handler when a device is to be shut
down so that it skips scsi_block_requests() on that host.  As before,
any new commands after a reset without reconnect will be failed quickly
by sbp2scsi_queuecommand().

In the long term, means to go without scsi_block_requests() should be
found.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2006-09-17 19:34:44 +02:00
..
.gitignore gitignore: misc files 2006-01-01 22:21:50 +01:00
config_roms.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
config_roms.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
csr.c [PATCH] ieee1394: fix calculation of csr->expire 2006-07-03 12:01:59 -04:00
csr.h [PATCH] ieee1394: clean up declarations of hpsb_*_config_rom 2006-07-03 12:02:31 -04:00
csr1212.c ieee1394: add preprocessor constant for invalid csr address 2006-06-12 18:15:31 -04:00
csr1212.h ieee1394: add preprocessor constant for invalid csr address 2006-06-12 18:15:31 -04:00
dma.c [PATCH] ieee1394: update #include directives in midlayer header files 2006-07-03 12:02:29 -04:00
dma.h [PATCH] ieee1394: update #include directives in midlayer header files 2006-07-03 12:02:29 -04:00
dv1394-private.h [PATCH] ieee1394: dv1394: sem2mutex conversion 2006-07-03 12:02:32 -04:00
dv1394.c ieee1394: safer definition of empty macros 2006-09-17 19:31:20 +02:00
dv1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
eth1394.c ieee1394: remove #include <asm/semaphore.h> 2006-09-17 19:18:50 +02:00
eth1394.h ieee1394: add preprocessor constant for invalid csr address 2006-06-12 18:15:31 -04:00
highlevel.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
highlevel.h [PATCH] ieee1394: update #include directives in midlayer header files 2006-07-03 12:02:29 -04:00
hosts.c ieee1394: shrink tlabel pools, remove tpool semaphores 2006-09-17 19:17:13 +02:00
hosts.h ieee1394: shrink tlabel pools, remove tpool semaphores 2006-09-17 19:17:13 +02:00
ieee1394_core.c ieee1394: safer definition of empty macros 2006-09-17 19:31:20 +02:00
ieee1394_core.h ieee1394: remove #include <asm/semaphore.h> 2006-09-17 19:18:50 +02:00
ieee1394_hotplug.h [PATCH] ieee1394: remove redundant code from ieee1394_hotplug.h 2006-07-03 12:02:30 -04:00
ieee1394_transactions.c ieee1394: shrink tlabel pools, remove tpool semaphores 2006-09-17 19:17:13 +02:00
ieee1394_transactions.h ieee1394: shrink tlabel pools, remove tpool semaphores 2006-09-17 19:17:13 +02:00
ieee1394_types.h ieee1394: safer definition of empty macros 2006-09-17 19:31:20 +02:00
ieee1394-ioctl.h [PATCH] ieee1394: coding style and comment fixes in midlayer header files 2006-07-03 12:02:28 -04:00
ieee1394.h [PATCH] ieee1394: coding style and comment fixes in midlayer header files 2006-07-03 12:02:28 -04:00
iso.c [PATCH] ieee1394: update #include directives in midlayer header files 2006-07-03 12:02:29 -04:00
iso.h [PATCH] ieee1394: update #include directives in midlayer header files 2006-07-03 12:02:29 -04:00
Kconfig [PATCH] ieee1394: nodemgr: do not peek into struct semaphore 2006-06-25 10:00:54 -07:00
Makefile Remove amdtp, cmp drivers. 2005-11-18 00:16:26 -05:00
nodemgr.c ieee1394: shrink tlabel pools, remove tpool semaphores 2006-09-17 19:17:13 +02:00
nodemgr.h ieee1394: shrink tlabel pools, remove tpool semaphores 2006-09-17 19:17:13 +02:00
ohci1394.c CONFIG_PM=n slim: drivers/ieee1394/ohci1394.c 2006-09-17 19:33:19 +02:00
ohci1394.h ohci1394: set address range properties 2006-06-12 18:13:32 -04:00
oui.db Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
oui2c.sh Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pcilynx.c [PATCH] irq-flags: firewire: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
pcilynx.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
raw1394-private.h [PATCH] ieee1394: raw1394: remove redundant counting semaphore 2006-07-03 12:02:33 -04:00
raw1394.c ieee1394: safer definition of empty macros 2006-09-17 19:31:20 +02:00
raw1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sbp2.c ieee1394: sbp2: prevent rare deadlock in shutdown 2006-09-17 19:34:44 +02:00
sbp2.h ieee1394: sbp2: prevent rare deadlock in shutdown 2006-09-17 19:34:44 +02:00
video1394.c ieee1394: safer definition of empty macros 2006-09-17 19:31:20 +02:00
video1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00