OpenCloudOS-Kernel/drivers/message/fusion
Michael Reed 7ba2db5f38 [SCSI] fusion mpt: fix target missing after resetting external raid
Following a hard reset of a SAS raid, one of the raid targets is occasionally
missing.  I tracked this down to a pretty obscure little bug.

The LSI fusion drivers for SAS and Fibre Channel both use their respective
transport layers.  Those transport layers increment the target number
assigned to new targets.

The routine __scsi_scan_target uses the "this_id" element of the Scsi_Host
structure to avoid scanning the scsi host adapter.  Both fusion drivers set
"this_id" from a value returned in a firmware PortFacts response.  For my
particular test case (SAS) the firmware id assigned to the initiator was
173.  After enough raid resets to cause the raid targets to go and come a
sufficient number of times, the id assigned by the transport to a raid
target would match the id assigned by the host adapter to the "this_id"
field, resulting in that target not being scanned.

Fix by not assigning this_id and not checking it in slave_configure. 

Signed-off-by: Michael Reed <mdr@sgi.com>
Acked-by: "Moore, Eric" <Eric.Moore@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2008-05-27 10:58:09 -05:00
..
lsi Spelling fixes: lenght->length 2008-02-03 15:42:53 +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] mpt fusion: fix up msi_enable in mpt_suspend 2008-04-07 12:19:02 -05:00
mptbase.h [SCSI] mptsas: do not use ioc->handle to locate hba portinfo structure 2008-04-07 12:19:00 -05:00
mptctl.c drivers/message/: Spelling fixes 2008-02-03 17:21:01 +02:00
mptctl.h [SCSI] mpt fusion: Change company name from LSI Logic to LSI 2007-10-12 14:40:54 -04:00
mptdebug.h [SCSI] mpt fusion: logging support in Kconfig, Makefile, mptbase.h and addition of mptdebug.h 2007-07-28 11:25:35 -04:00
mptfc.c [SCSI] fusion mpt: fix target missing after resetting external raid 2008-05-27 10:58:09 -05:00
mptlan.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-10-15 08:19:33 -07:00
mptlan.h [SCSI] mpt fusion: Change company name from LSI Logic to LSI 2007-10-12 14:40:54 -04:00
mptsas.c [SCSI] fusion mpt: fix target missing after resetting external raid 2008-05-27 10:58:09 -05:00
mptsas.h [SCSI] mpt fusion: Creation of mptsas.h header file 2007-10-12 14:40:47 -04:00
mptscsih.c [SCSI] fusion mpt: fix target missing after resetting external raid 2008-05-27 10:58:09 -05:00
mptscsih.h SCSI: convert struct class_device to struct device 2008-04-19 19:10:33 -07:00
mptspi.c [SCSI] mpt fusion: fix up fusion prints using the sdev_printk, dev_printk, and shost_printk API 2007-10-12 14:52:19 -04:00