Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 89877e42827f16fa5f86b1df0c2860b1 > files > 2189

kernel-2.6.18-128.1.10.el5.src.rpm

From: Marcus Barrow <mbarrow@redhat.com>
Date: Thu, 20 Nov 2008 11:09:27 -0500
Subject: [scsi] qla2xx/qla84xx: failure to establish link
Message-id: 20081120160927.13683.78850.sendpatchset@file.bos.redhat.com
O-Subject: [rhel 5.3 bug] qla2xx/qla84xx - Failure to establish link.
Bugzilla: 472382
RH-Acked-by: Mike Christie <mchristi@redhat.com>
RH-Acked-by: Tomas Henzl <thenzl@redhat.com>

BZ 472382 - [QLogic 5.3 bug] qla2xx/qla84xx - Failure to establish link.

QLogic testing is showing that the FCoE adapter is unable to bring up it's
link. This is because of an additional initialization step required by the
ethernet hardware. In upstream this code would be called thru the
scsi_start_scan interface which is not present in rhel 5.

This is a simple patch which explicitly calls the additional initialization
routine for the FCoE hardware.

It applies and builds cleanly to 2.6.18-123, and is observed to fix the problem
at QLogic.

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index a645dda..db09548 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -127,15 +127,25 @@ qla2x00_initialize_adapter(scsi_qla_host_t *ha)
 		if (rval)
 			return (rval);
 	}
-	if (IS_QLA84XX(ha)) {
+
+	rval = qla2x00_init_rings(ha);
+
+	if (rval == QLA_SUCCESS && IS_QLA84XX(ha)) {
 		ha->cs84xx = qla84xx_get_chip(ha);
 		if (!ha->cs84xx) {
 			qla_printk(KERN_ERR, ha,
 				"Unable to configure ISP84XX.\n");
 			return QLA_FUNCTION_FAILED;
 		}
+
+		/* Issue verify 84xx FW IOCB to complete 84xx initialization */
+		rval = qla84xx_init_chip(ha);
+		if (rval != QLA_SUCCESS) {
+			qla_printk(KERN_ERR, ha,
+				"Unable to initialize ISP84XX.\n");
+			qla84xx_put_chip(ha);
+		}
 	}
-	rval = qla2x00_init_rings(ha);
 
 	return (rval);
 }