linux/drivers/message/fusion
Kashyap, Desai 9766096d33 [SCSI] mptsas : FW event thread and scsi mid layer deadlock in SYNCHRONIZE CACHE command
Normally In HBA reset path MPT driver will flush existing work in current work
queue (mpt/0) . This is just a dummy activity for MPT driver point of
view, since HBA reset will turn off Work queue events.

It means we will simply returns from work queue without doing anything.
But for the case where Work is already done (half the way), we have to have
that work to be done.

Considering above condition we stuck forever since Deadlock in scsi midlayer
and MPT driver. sd_sync_cache() will wait forever since HBA is not in
Running state, and it will never come into Running state since
sd_sync_cache() is called from HBA reset context.
Now new code will not wait for half cooked work to be finished
before returning from HBA reset.

Once we are out of HBA reset, EH thread will change host state to running from
recovery and work waiting for running state of HBA will be finished.
New code is turning ON firmware event from another special work called
Rescan toplogy.

Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2009-09-12 09:35:28 -05:00
..
lsi trivial: Miscellaneous documentation typo fixes 2009-06-12 18:01:47 +02:00
Kconfig [SCSI] mpt fusion: Kconfig cleanup 2007-10-12 14:48:53 -04:00
Makefile [SCSI] mpt fusion: logging support in Kconfig, Makefile, mptbase.h and addition of mptdebug.h 2007-07-28 11:25:35 -04:00
mptbase.c [SCSI] mptsas : PAE Kernel more than 4 GB kernel panic 2009-09-12 09:35:27 -05:00
mptbase.h [SCSI] mptsas : Bump version to 3.04.11 2009-08-22 17:52:26 -05:00
mptctl.c [SCSI] mpt fusion: Code Cleanup patch 2009-06-09 17:43:06 -05:00
mptctl.h [SCSI] mpt fusion : Updated copyright statment with 2008 included 2008-06-05 09:27:17 -05:00
mptdebug.h [SCSI] mpt fusion: Fixing 1078 data corruption issue for 36GB memory region 2009-06-09 17:21:31 -05:00
mptfc.c [SCSI] mptsas : Removed mptscsih_timer_expired. 2009-08-22 17:52:24 -05:00
mptlan.c net: use symbolic values for ndo_start_xmit() return codes 2009-06-13 01:18:50 -07:00
mptlan.h mptlan: Kill directly reference of netdev->priv 2008-12-03 21:13:37 -08:00
mptsas.c [SCSI] mptsas : FW event thread and scsi mid layer deadlock in SYNCHRONIZE CACHE command 2009-09-12 09:35:28 -05:00
mptsas.h [SCSI] mpt fusion: Queue full event handling 2009-06-09 17:44:39 -05:00
mptscsih.c [SCSI] mptsas : Send DID_NO_CONNECT for pending IOs of removed device 2009-09-12 09:35:28 -05:00
mptscsih.h [SCSI] mptsas : Removed mptscsih_timer_expired. 2009-08-22 17:52:24 -05:00
mptspi.c [SCSI] mptsas : Removed mptscsih_timer_expired. 2009-08-22 17:52:24 -05:00