summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Reed <mdr@sgi.com>2006-07-31 12:19:40 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-08-06 15:47:31 -0500
commit77d88ee275aeba5da447987f30401bbd4c901ca9 (patch)
tree1ede23b8e5ab90fe3aaebfd2dc1f79959c77fd87
parent3e74051bc7b780c5ba28939f9d5c4cd3280a5ff7 (diff)
[SCSI] mptfc: properly wait for firmware target discovery to complete
Based upon a conversation I had with LSI's fibre channel firmware guru, this patch adds another condition under which the driver waits for the firmware link initialization / target discovery to complete. Signed-off-by: Michael Reed <mdr@sgi.com> Acked-by: Moore, Eric <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r--drivers/message/fusion/mptfc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c
index 90da7d63b08e..2144554a640d 100644
--- a/drivers/message/fusion/mptfc.c
+++ b/drivers/message/fusion/mptfc.c
@@ -669,7 +669,10 @@ mptfc_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum)
* if still doing discovery,
* hang loose a while until finished
*/
- if (pp0dest->PortState == MPI_FCPORTPAGE0_PORTSTATE_UNKNOWN) {
+ if ((pp0dest->PortState == MPI_FCPORTPAGE0_PORTSTATE_UNKNOWN) ||
+ (pp0dest->PortState == MPI_FCPORTPAGE0_PORTSTATE_ONLINE &&
+ (pp0dest->Flags & MPI_FCPORTPAGE0_FLAGS_ATTACH_TYPE_MASK)
+ == MPI_FCPORTPAGE0_FLAGS_ATTACH_NO_INIT)) {
if (count-- > 0) {
msleep(100);
goto try_again;