[SCSI] aacraid: fix aacraid not finding device
authorSalyzyn, Mark <mark_salyzyn@adaptec.com>
Fri, 13 Apr 2007 12:35:25 +0000 (08:35 -0400)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Tue, 17 Apr 2007 22:02:22 +0000 (18:02 -0400)
Thanks for the help from Steve Fox and Duane Cox investigating this
issue, I'd like to report that we found the problem. The issue is with
the patch Steve Fox isolated below, by not accommodating older adapters
properly and issuing a command they do not support when retrieving
storage parameters about the arrays. This simple patch resolves the
problem (and more accurately mimics the logic of the original code
before the patch).

Signed-off-by: Mark Salyzyn <aacraid@adaptec.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/aacraid/aachba.c

index 31ac9f56cd1f496bbe3bde3a6c8dd4a2196104ab..1e82c69b36b023b57d1c5ad4911c7349a9d561c4 100644 (file)
@@ -503,8 +503,7 @@ static int _aac_probe_container1(void * context, struct fib * fibptr)
        dresp = (struct aac_mount *) fib_data(fibptr);
        dresp->mnt[0].capacityhigh = 0;
        if ((le32_to_cpu(dresp->status) != ST_OK) ||
-           ((le32_to_cpu(dresp->mnt[0].vol) != CT_NONE) &&
-            (le32_to_cpu(dresp->mnt[0].state) == FSCS_HIDDEN)))
+           (le32_to_cpu(dresp->mnt[0].vol) != CT_NONE))
                return _aac_probe_container2(context, fibptr);
        scsicmd = (struct scsi_cmnd *) context;
        scsicmd->SCp.phase = AAC_OWNER_MIDLEVEL;