From 6cf03d9e1f16952b5c8c1dc073d82e223a600365 Mon Sep 17 00:00:00 2001 From: Prasanna Mumbai Date: Mon, 21 Mar 2011 03:34:26 -0700 Subject: [PATCH] --- yaml --- r: 242711 b: refs/heads/master c: f9880e76fd15795b5917b20f54eeca764b0f3ccb h: refs/heads/master i: 242709: f05fbaed902dec7569a52b96ea0d8cc593bbd8de 242707: 40f6f6cbd1f19acb38e462aabf5c2e58c01028c4 242703: 076fc943eb05fa62da8f28a6399c7c16f73dc504 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/qla4xxx/ql4_os.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 20c9f4f94a15..a4c063a1555b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 99b53bf50cc4711a3c82dfc704911ff738a41758 +refs/heads/master: f9880e76fd15795b5917b20f54eeca764b0f3ccb diff --git a/trunk/drivers/scsi/qla4xxx/ql4_os.c b/trunk/drivers/scsi/qla4xxx/ql4_os.c index 967836ef5ab2..409b20d62ef5 100644 --- a/trunk/drivers/scsi/qla4xxx/ql4_os.c +++ b/trunk/drivers/scsi/qla4xxx/ql4_os.c @@ -1630,6 +1630,7 @@ static int __devinit qla4xxx_probe_adapter(struct pci_dev *pdev, uint8_t init_retry_count = 0; char buf[34]; struct qla4_8xxx_legacy_intr_set *nx_legacy_intr; + uint32_t dev_state; if (pci_enable_device(pdev)) return -1; @@ -1713,6 +1714,18 @@ static int __devinit qla4xxx_probe_adapter(struct pci_dev *pdev, status = qla4xxx_initialize_adapter(ha, REBUILD_DDB_LIST); while ((!test_bit(AF_ONLINE, &ha->flags)) && init_retry_count++ < MAX_INIT_RETRIES) { + + if (is_qla8022(ha)) { + qla4_8xxx_idc_lock(ha); + dev_state = qla4_8xxx_rd_32(ha, QLA82XX_CRB_DEV_STATE); + qla4_8xxx_idc_unlock(ha); + if (dev_state == QLA82XX_DEV_FAILED) { + ql4_printk(KERN_WARNING, ha, "%s: don't retry " + "initialize adapter. H/W is in failed state\n", + __func__); + break; + } + } DEBUG2(printk("scsi: %s: retrying adapter initialization " "(%d)\n", __func__, init_retry_count));