From: Jeremy Higdon Subject: mptsas driver fails to discover devices References: bnc#459932 The mptsas driver has a serious regression in sles11rc1 in that it fails to discover devices that work fine with sles10sp2. I discovered that part of the problem was that the target number of the RAID volume was too high for the driver to discover it. The problem with the IS220 (LSI 1333 RAID) is that the driver is issuing its own Test Unit Read and that's apparently being considered a failure from the Unit Attention statuses. With this patch the system boots okay. Signed-off-by: Jeremy Higdon Signed-off-by: Sathya Prakash Signed-off-by: Hannes Reinecke --- /mnt/usr/src/linux/drivers/message/fusion/mptsas.c 2008-12-08 06:54:50.000000000 -0800 +++ linux/drivers/message/fusion/mptsas.c 2009-01-18 22:16:30.456811758 -0800 @@ -1580,12 +1580,10 @@ enum device_state state; int rc; u8 skey, asc, ascq; - u8 retry_ua; if (count >= mpt_cmd_retry_count) return DEVICE_ERROR; - retry_ua = 0; iocmd = kzalloc(sizeof(INTERNAL_CMD), GFP_KERNEL); if (!iocmd) { printk(MYIOC_s_ERR_FMT "%s: kzalloc(%zd) FAILED!\n", @@ -1646,10 +1644,8 @@ __func__, channel, id, skey, asc, ascq)); if (skey == UNIT_ATTENTION) { - if (!retry_ua) { - retry_ua++; - goto retry; - } + state = DEVICE_RETRY; + break; } else if (skey == NOT_READY) { /* * medium isn't present @@ -3740,6 +3736,7 @@ return; } } + mpt_findImVolumes(ioc); case MPTSAS_ADD_DEVICE: memset(&sas_device, 0, sizeof(struct mptsas_devinfo));