Skip to contentSkip to conversation

2.6.24 regression w/ QLA2300

PATCH Alan D. Brunelle 2 participants 7 messages Feb 5, 2008

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

During this merge:

commit 9b73e76f3cf63379dcf45fcd4f112f5812418d0a
Merge: 50d9a12... 23c3e29...
Author: Linus Torvalds <[email protected]>
Date: Fri Jan 25 17:19:08 2008 -0800

Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)

I believe a regression was introduced. I'm running on a 4-way IA64, with straight 2.6.24 and 2 dual-port cards:

40:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) 40:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03)

the adapters failed initialization. In particular, I narrowed it down to failing the qla2x00_mbox_command call within qla2x00_init_firmware function. I went and removed the qla2x00-related parts of this (large-ish) merge, and the 4 ports initialized just fine.

Specifically, reverting the "patch" below enabled the devices to initialize properly.

If need be, I'm certainly willing to help narrow down to the specific part in this patch...

Alan D. Brunelle
HP OSLO S&P

---

drivers/scsi/qla2xxx/Makefile +1 -1
index 71ddb5d..c51fd1f 100644
@@ -1,4 +1,4 @@
 qla2xxx-y := qla_os.o qla_init.o qla_mbx.o qla_iocb.o qla_isr.o qla_gs.o \
-		qla_dbg.o qla_sup.o qla_attr.o qla_mid.o
+		qla_dbg.o qla_sup.o qla_attr.o qla_mid.o qla_dfs.o
 
 obj-$(CONFIG_SCSI_QLA_FC) += qla2xxx.o
drivers/scsi/qla2xxx/qla_attr.c +35 -19

105 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_dbg.c +22 -15
index eaa04da..d88e98c 100644
@@ -1051,6 +1051,7 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
 	struct qla25xx_fw_dump *fw;
 	uint32_t	ext_mem_cnt;
 	void		*nxt;
+	struct qla2xxx_fce_chain *fcec;
 
 	risc_address = ext_mem_cnt = 0;
 	flags = 0;
@@ -1321,10 +1322,31 @@ qla25xx_fw_dump(scsi_qla_host_t *ha, int hardware_locked)
 	if (rval != QLA_SUCCESS)
 		goto qla25xx_fw_dump_failed_0;
 
+	/* Fibre Channel Trace Buffer. */
 	nxt = qla2xxx_copy_queues(ha, nxt);
 	if (ha->eft)
 		memcpy(nxt, ha->eft, ntohl(ha->fw_dump->eft_size));
 
+	/* Fibre Channel Event Buffer. */
+	if (!ha->fce)
+		goto qla25xx_fw_dump_failed_0;
+
+	ha->fw_dump->version |= __constant_htonl(DUMP_CHAIN_VARIANT);
+
+	fcec = nxt + ntohl(ha->fw_dump->eft_size);
+	fcec->type = __constant_htonl(DUMP_CHAIN_FCE | DUMP_CHAIN_LAST);
+	fcec->chain_size = htonl(sizeof(struct qla2xxx_fce_chain) +
+	    fce_calc_size(ha->fce_bufs));
+	fcec->size = htonl(fce_calc_size(ha->fce_bufs));
+	fcec->addr_l = htonl(LSD(ha->fce_dma));
+	fcec->addr_h = htonl(MSD(ha->fce_dma));
+
+	iter_reg = fcec->eregs;
+	for (cnt = 0; cnt < 8; cnt++)
+		*iter_reg++ = htonl(ha->fce_mb[cnt]);
+
+	memcpy(iter_reg, ha->fce, ntohl(fcec->size));
+
 qla25xx_fw_dump_failed_0:
 	if (rval != QLA_SUCCESS) {
 		qla_printk(KERN_WARNING, ha,
@@ -1428,21 +1450,6 @@ qla2x00_print_scsi_cmd(struct scsi_cmnd * cmd)
 	printk("  sp flags=0x%x\n", sp->flags);
 }
 
-void
-qla2x00_dump_pkt(void *pkt)
-{
-	uint32_t i;
-	uint8_t *data = (uint8_t *) pkt;
-
-	for (i = 0; i < 64; i++) {
-		if (!(i % 4))
-			printk("\n%02x: ", i);
-
-		printk("%02x ", data[i]);
-	}
-	printk("\n");
-}
-
 #if defined(QL_DEBUG_ROUTINES)
 /*
  * qla2x00_formatted_dump_buffer
drivers/scsi/qla2xxx/qla_dbg.h +19 -0
index a50ecf0..524598a 100644
@@ -256,6 +256,25 @@ struct qla25xx_fw_dump {
 #define EFT_BYTES_PER_BUFFER	0x4000
 #define EFT_SIZE		((EFT_BYTES_PER_BUFFER) * (EFT_NUM_BUFFERS))
 
+#define FCE_NUM_BUFFERS		64
+#define FCE_BYTES_PER_BUFFER	0x400
+#define FCE_SIZE		((FCE_BYTES_PER_BUFFER) * (FCE_NUM_BUFFERS))
+#define fce_calc_size(b)	((FCE_BYTES_PER_BUFFER) * (b))
+
+struct qla2xxx_fce_chain {
+	uint32_t type;
+	uint32_t chain_size;
+
+	uint32_t size;
+	uint32_t addr_l;
+	uint32_t addr_h;
+	uint32_t eregs[8];
+};
+
+#define DUMP_CHAIN_VARIANT	0x80000000
+#define DUMP_CHAIN_FCE		0x7FFFFAF0
+#define DUMP_CHAIN_LAST		0x80000000
+
 struct qla2xxx_fw_dump {
 	uint8_t signature[4];
 	uint32_t version;
drivers/scsi/qla2xxx/qla_def.h +28 -24

101 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_dfs.c new file +175 -0

175 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_fw.h +24 -6
index 25364b1..9337e13 100644
@@ -952,9 +952,31 @@ struct device_reg_24xx {
 	uint32_t iobase_sdata;
 };
 
+/* Trace Control *************************************************************/
+
+#define TC_AEN_DISABLE		0
+
+#define TC_EFT_ENABLE		4
+#define TC_EFT_DISABLE		5
+
+#define TC_FCE_ENABLE		8
+#define TC_FCE_OPTIONS		0
+#define TC_FCE_DEFAULT_RX_SIZE	2112
+#define TC_FCE_DEFAULT_TX_SIZE	2112
+#define TC_FCE_DISABLE		9
+#define TC_FCE_DISABLE_TRACE	BIT_0
+
 /* MID Support ***************************************************************/
 
-#define MAX_MID_VPS	125
+#define MIN_MULTI_ID_FABRIC	64	/* Must be power-of-2. */
+#define MAX_MULTI_ID_FABRIC	256	/* ... */
+
+#define for_each_mapped_vp_idx(_ha, _idx)		\
+	for (_idx = find_next_bit((_ha)->vp_idx_map,	\
+		(_ha)->max_npiv_vports + 1, 1);		\
+	    _idx <= (_ha)->max_npiv_vports;		\
+	    _idx = find_next_bit((_ha)->vp_idx_map,	\
+		(_ha)->max_npiv_vports + 1, _idx + 1))	\
 
 struct mid_conf_entry_24xx {
 	uint16_t reserved_1;
@@ -982,7 +1004,7 @@ struct mid_init_cb_24xx {
 	uint16_t count;
 	uint16_t options;
 
-	struct mid_conf_entry_24xx entries[MAX_MID_VPS];
+	struct mid_conf_entry_24xx entries[MAX_MULTI_ID_FABRIC];
 };
 
 
@@ -1002,10 +1024,6 @@ struct mid_db_entry_24xx {
 	uint8_t reserved_1;
 };
 
-struct mid_db_24xx {
-	struct mid_db_entry_24xx entries[MAX_MID_VPS];
-};
-
  /*
  * Virtual Fabric ID type definition.
  */
drivers/scsi/qla2xxx/qla_gbl.h +21 -30

125 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_init.c +70 -27

173 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_isr.c +54 -66

196 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_mbx.c +144 -286

664 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_mid.c +20 -26

114 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_os.c +29 -51

199 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_sup.c +12 -6
index ad2fa01..b68fb73 100644
@@ -22,7 +22,7 @@ static void qla2x00_nv_write(scsi_qla_host_t *, uint16_t);
  * qla2x00_lock_nvram_access() -
  * @ha: HA context
  */
-void
+static void
 qla2x00_lock_nvram_access(scsi_qla_host_t *ha)
 {
 	uint16_t data;
@@ -55,7 +55,7 @@ qla2x00_lock_nvram_access(scsi_qla_host_t *ha)
  * qla2x00_unlock_nvram_access() -
  * @ha: HA context
  */
-void
+static void
 qla2x00_unlock_nvram_access(scsi_qla_host_t *ha)
 {
 	struct device_reg_2xxx __iomem *reg = &ha->iobase->isp;
@@ -74,7 +74,7 @@ qla2x00_unlock_nvram_access(scsi_qla_host_t *ha)
  *
  * Returns the word read from nvram @addr.
  */
-uint16_t
+static uint16_t
 qla2x00_get_nvram_word(scsi_qla_host_t *ha, uint32_t addr)
 {
 	uint16_t	data;
@@ -93,7 +93,7 @@ qla2x00_get_nvram_word(scsi_qla_host_t *ha, uint32_t addr)
  * @addr: Address in NVRAM to write
  * @data: word to program
  */
-void
+static void
 qla2x00_write_nvram_word(scsi_qla_host_t *ha, uint32_t addr, uint16_t data)
 {
 	int count;
@@ -550,7 +550,7 @@ qla24xx_write_flash_data(scsi_qla_host_t *ha, uint32_t *dwptr, uint32_t faddr,
 	int ret;
 	uint32_t liter, miter;
 	uint32_t sec_mask, rest_addr, conf_addr;
-	uint32_t fdata, findex ;
+	uint32_t fdata, findex, cnt;
 	uint8_t	man_id, flash_id;
 	struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
 	dma_addr_t optrom_dma;
@@ -690,8 +690,14 @@ qla24xx_write_flash_data(scsi_qla_host_t *ha, uint32_t *dwptr, uint32_t faddr,
 			    0xff0000) | ((fdata >> 16) & 0xff));
 	}
 
-	/* Enable flash write-protection. */
+	/* Enable flash write-protection and wait for completion. */
 	qla24xx_write_flash_dword(ha, flash_conf_to_access_addr(0x101), 0x9c);
+	for (cnt = 300; cnt &&
+	    qla24xx_read_flash_dword(ha,
+		    flash_conf_to_access_addr(0x005)) & BIT_0;
+	    cnt--) {
+		udelay(10);
+	}
 
 	/* Disable flash write. */
 	WRT_REG_DWORD(&reg->ctrl_status,
drivers/scsi/qla2xxx/qla_version.h +1 -1
index ae6f7a2..2c2f6b4 100644
@@ -7,7 +7,7 @@
 /*
  * Driver version
  */
-#define QLA2XXX_VERSION      "8.02.00-k5"
+#define QLA2XXX_VERSION      "8.02.00-k7"
 
 #define QLA_DRIVER_MAJOR_VER	8
 #define QLA_DRIVER_MINOR_VER	2
#1 lore raw
Quoted 17 lines · Alan D. Brunelle

commit 9b73e76f3cf63379dcf45fcd4f112f5812418d0a
Merge: 50d9a12... 23c3e29...
Author: Linus Torvalds <[email protected]>
Date: Fri Jan 25 17:19:08 2008 -0800

Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)

I believe a regression was introduced. I'm running on a 4-way IA64, with straight 2.6.24 and 2 dual-port cards:

40:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) 40:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03)

Quoted 4 lines

the adapters failed initialization. In particular, I narrowed it down to failing the qla2x00_mbox_command call within qla2x00_init_firmware function. I went and removed the qla2x00-related parts of this (large-ish) merge, and the 4 ports initialized just fine.

Could you load the (default 2.6.24) driver with
ql2xextended_error_logging modules parameter set:

	# insmod qla2xxx ql2xextended_error_logging=1

and send the resultant kernel logs?

Quoted 4 lines

Specifically, reverting the "patch" below enabled the devices to initialize properly.

If need be, I'm certainly willing to help narrow down to the specific part in this patch...

That's a rather large patch... :( Any chance you could git-bisect?
Also, could you send your .config file you are using?

Thanks,
Andrew Vasquez

#2 lore raw
Quoted 24 lines · Andrew Vasquez
Quoted 17 lines · Alan D. Brunelle

commit 9b73e76f3cf63379dcf45fcd4f112f5812418d0a
Merge: 50d9a12... 23c3e29...
Author: Linus Torvalds <[email protected]>
Date: Fri Jan 25 17:19:08 2008 -0800

Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)

I believe a regression was introduced. I'm running on a 4-way IA64, with straight 2.6.24 and 2 dual-port cards:

40:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) 40:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03)

Quoted 4 lines

the adapters failed initialization. In particular, I narrowed it down to failing the qla2x00_mbox_command call within qla2x00_init_firmware function. I went and removed the qla2x00-related parts of this (large-ish) merge, and the 4 ports initialized just fine.

Quoted 6 lines

Could you load the (default 2.6.24) driver with
ql2xextended_error_logging modules parameter set:

	# insmod qla2xxx ql2xextended_error_logging=1

and send the resultant kernel logs?

Could you tray the patch referenced here:

qla2xxx: Correct issue where incorrect init-fw mailbox command was used on non-NPIV capable ISPs.
http://article.gmane.org/gmane.linux.scsi/38240

Thanks, av

---

qla2xxx: Correct issue where incorrect init-fw mailbox command was used on non-NPIV capable ISPs.

BIT_2 of the firmware attributes is only valid on FW-interface-2 type HBAs. Code in commit c48339decceec8e011498b0fc4c7c7d8b2ea06c1 would cause the incorrect initialize-firmware mailbox command to be issued for non-NPIV capable ISPs. Correct this by reverting to previously used (and correct) pre-condition 'if' check.

---
 drivers/scsi/qla2xxx/qla_mbx.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/scsi/qla2xxx/qla_mbx.c +1 -1
index 0c10c0b..99d29ff 100644
@@ -980,7 +980,7 @@ qla2x00_init_firmware(scsi_qla_host_t *ha, uint16_t size)
 	DEBUG11(printk("qla2x00_init_firmware(%ld): entered.\n",
 	    ha->host_no));
 
-	if (ha->fw_attributes & BIT_2)
+	if (ha->flags.npiv_supported)
 		mcp->mb[0] = MBC_MID_INITIALIZE_FIRMWARE;
 	else
 		mcp->mb[0] = MBC_INITIALIZE_FIRMWARE;
Signature · 1 line
1.5.4.rc5.5.gab98
#3 lore raw
Quoted 11 lines · Andrew Vasquez
Quoted 6 lines

Could you load the (default 2.6.24) driver with
ql2xextended_error_logging modules parameter set:

	# insmod qla2xxx ql2xextended_error_logging=1

and send the resultant kernel logs?

Could you tray the patch referenced here:

qla2xxx: Correct issue where incorrect init-fw mailbox command was used on non-NPIV capable ISPs.
http://article.gmane.org/gmane.linux.scsi/38240

BTW: the regression in question is not present in vanilla 2.6.24. Instead it was introduced early on in the 2.6.25 merge-window. Linus' tree currently has the patch referenced above as well.

--
av

#4 lore raw
In reply to Andrew Vasquez
Quoted 30 lines · Andrew Vasquez
Quoted 28 lines · Andrew Vasquez
Quoted 17 lines · Alan D. Brunelle

commit 9b73e76f3cf63379dcf45fcd4f112f5812418d0a
Merge: 50d9a12... 23c3e29...
Author: Linus Torvalds <[email protected]>
Date: Fri Jan 25 17:19:08 2008 -0800

Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)

I believe a regression was introduced. I'm running on a 4-way IA64, with straight 2.6.24 and 2 dual-port cards:

40:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) 40:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03)

Quoted 4 lines

the adapters failed initialization. In particular, I narrowed it down to failing the qla2x00_mbox_command call within qla2x00_init_firmware function. I went and removed the qla2x00-related parts of this (large-ish) merge, and the 4 ports initialized just fine.

Could you load the (default 2.6.24) driver with
ql2xextended_error_logging modules parameter set:

	# insmod qla2xxx ql2xextended_error_logging=1
Quoted 8 lines
Quoted 1 line

and send the resultant kernel logs?

Could you tray the patch referenced here:

qla2xxx: Correct issue where incorrect init-fw mailbox command was used on non-NPIV capable ISPs.
http://article.gmane.org/gmane.linux.scsi/38240

Thanks, av

The referenced patch worked fine Andrew, thanks much!

Alan

#5 lore raw
In reply to Andrew Vasquez
Quoted 24 lines · Andrew Vasquez
Quoted 17 lines · Alan D. Brunelle

commit 9b73e76f3cf63379dcf45fcd4f112f5812418d0a
Merge: 50d9a12... 23c3e29...
Author: Linus Torvalds <[email protected]>
Date: Fri Jan 25 17:19:08 2008 -0800

Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (200 commits)

I believe a regression was introduced. I'm running on a 4-way IA64, with straight 2.6.24 and 2 dual-port cards:

40:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) 40:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03) c0:01.1 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter (rev 03)

Quoted 4 lines

the adapters failed initialization. In particular, I narrowed it down to failing the qla2x00_mbox_command call within qla2x00_init_firmware function. I went and removed the qla2x00-related parts of this (large-ish) merge, and the 4 ports initialized just fine.

Quoted 6 lines

Could you load the (default 2.6.24) driver with
ql2xextended_error_logging modules parameter set:

	# insmod qla2xxx ql2xextended_error_logging=1

and send the resultant kernel logs?

Here's the output to the console (if there are other logs you need, let me know). I'll try the patch next, and sorry, hadn't realized merges were still coming in under 2.6.24 in Linus' tree...

QLogic Fibre Channel HBA Driver
ACPI: PCI Interrupt 0000:40:01.0[A] -> GSI 38 (level, low) -> IRQ 58 qla2xxx 0000:40:01.0: Found an ISP2312, irq 58, iobase 0xc0000000a0041000 qla2xxx 0000:40:01.0: Configuring PCI space... qla2x00_get_flash_version(): Unrecognized code type ff at pcids da1c. qla2x00_get_flash_version(): Unrecognized code type ff at pcids 1f61c. qla2xxx 0000:40:01.0: Configure NVRAM parameters...
qla2xxx 0000:40:01.0: Verifying loaded RISC code...
scsi(14): **** Load RISC code ****
scsi(14): Verifying Checksum of loaded RISC code.
scsi(14): Checksum OK, start firmware.
qla2xxx 0000:40:01.0: Allocated (412 KB) for firmware dump... scsi(14): Issue init firmware.
qla2x00_mailbox_command(14): **** FAILED. mbx0=4001, mbx1=0, mbx2=ba8a, cmd=48 **** qla2x00_init_firmware(14): failed=102 mb0=4001.
scsi(14): Init firmware **** FAILED ****.
qla2xxx 0000:40:01.0: Failed to initialize adapter
scsi(14): Failed to initialize adapter - Adapter flags 10.
ACPI: PCI Interrupt 0000:40:01.1[B] -> GSI 39 (level, low) -> IRQ 59 qla2xxx 0000:40:01.1: Found an ISP2312, irq 59, iobase 0xc0000000a0040000 qla2xxx 0000:40:01.1: Configuring PCI space... qla2x00_get_flash_version(): Unrecognized code type ff at pcids da1c. qla2x00_get_flash_version(): Unrecognized code type ff at pcids 1f61c. qla2xxx 0000:40:01.1: Configure NVRAM parameters...
qla2xxx 0000:40:01.1: Verifying loaded RISC code...
scsi(15): **** Load RISC code ****
scsi(15): Verifying Checksum of loaded RISC code.
scsi(15): Checksum OK, start firmware.
qla2xxx 0000:40:01.1: Allocated (412 KB) for firmware dump... scsi(15): Issue init firmware.
qla2x00_mailbox_command(15): **** FAILED. mbx0=4001, mbx1=0, mbx2=bac6, cmd=48 **** qla2x00_init_firmware(15): failed=102 mb0=4001.
scsi(15): Init firmware **** FAILED ****.
qla2xxx 0000:40:01.1: Failed to initialize adapter
scsi(15): Failed to initialize adapter - Adapter flags 10.
ACPI: PCI Interrupt 0000:c0:01.0[A] -> GSI 71 (level, low) -> IRQ 60 qla2xxx 0000:c0:01.0: Found an ISP2312, irq 60, iobase 0xc0000000e0041000 qla2xxx 0000:c0:01.0: Configuring PCI space... qla2x00_get_flash_version(): Unrecognized code type ff at pcids c61c. qla2x00_get_flash_version(): Unrecognized code type ff at pcids 1da1c. qla2xxx 0000:c0:01.0: Configure NVRAM parameters...
qla2xxx 0000:c0:01.0: Verifying loaded RISC code...
scsi(16): **** Load RISC code ****
scsi(16): Verifying Checksum of loaded RISC code.
scsi(16): Checksum OK, start firmware.
qla2xxx 0000:c0:01.0: Allocated (412 KB) for firmware dump... scsi(16): Issue init firmware.
qla2x00_mailbox_command(16): **** FAILED. mbx0=4001, mbx1=0, mbx2=bae3, cmd=48 **** qla2x00_init_firmware(16): failed=102 mb0=4001.
scsi(16): Init firmware **** FAILED ****.
qla2xxx 0000:c0:01.0: Failed to initialize adapter
scsi(16): Failed to initialize adapter - Adapter flags 10.
ACPI: PCI Interrupt 0000:c0:01.1[B] -> GSI 72 (level, low) -> IRQ 61 qla2xxx 0000:c0:01.1: Found an ISP2312, irq 61, iobase 0xc0000000e0040000 qla2xxx 0000:c0:01.1: Configuring PCI space... qla2x00_get_flash_version(): Unrecognized code type ff at pcids c61c. qla2x00_get_flash_version(): Unrecognized code type ff at pcids 1da1c. qla2xxx 0000:c0:01.1: Configure NVRAM parameters...
qla2xxx 0000:c0:01.1: Verifying loaded RISC code...
scsi(17): **** Load RISC code ****
scsi(17): Verifying Checksum of loaded RISC code.
scsi(17): Checksum OK, start firmware.
qla2xxx 0000:c0:01.1: Allocated (412 KB) for firmware dump... scsi(17): Issue init firmware.
qla2x00_mailbox_command(17): **** FAILED. mbx0=4001, mbx1=0, mbx2=bb06, cmd=48 **** qla2x00_init_firmware(17): failed=102 mb0=4001.
scsi(17): Init firmware **** FAILED ****.
qla2xxx 0000:c0:01.1: Failed to initialize adapter
scsi(17): Failed to initialize adapter - Adapter flags 10.

#6 lore raw
Quoted 6 lines · Alan D. Brunelle
Quoted 1 line

and send the resultant kernel logs?

Here's the output to the console (if there are other logs you need, let me know). I'll try the patch next, and sorry, hadn't realized merges were still coming in under 2.6.24 in Linus' tree...

Quoted 14 lines

QLogic Fibre Channel HBA Driver
ACPI: PCI Interrupt 0000:40:01.0[A] -> GSI 38 (level, low) -> IRQ 58 qla2xxx 0000:40:01.0: Found an ISP2312, irq 58, iobase 0xc0000000a0041000 qla2xxx 0000:40:01.0: Configuring PCI space... qla2x00_get_flash_version(): Unrecognized code type ff at pcids da1c. qla2x00_get_flash_version(): Unrecognized code type ff at pcids 1f61c. qla2xxx 0000:40:01.0: Configure NVRAM parameters...
qla2xxx 0000:40:01.0: Verifying loaded RISC code...
scsi(14): **** Load RISC code ****
scsi(14): Verifying Checksum of loaded RISC code.
scsi(14): Checksum OK, start firmware.
qla2xxx 0000:40:01.0: Allocated (412 KB) for firmware dump... scsi(14): Issue init firmware.
qla2x00_mailbox_command(14): **** FAILED. mbx0=4001, mbx1=0, mbx2=ba8a, cmd=48 ****

Ok, this is what I would have expected with the linus' tree prior to the fix. I just double-checked, the fix in question has yet to make it's way to Linus' tree. It's currently in scsi-misc-2.6:

http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commitdiff;h=a571fdf7caa010e17f6a70c0c52e0992e87af7db

which should filter up to linux-2.6.git during Linus' next pull.

thanks, av