OSDN Git Service

[SCSI] qla2xxx: Issue correct MBC_INITIALIZE_FIRMWARE command.
authorSeokmann Ju <seokmann.ju@qlogic.com>
Thu, 17 Jan 2008 17:02:19 +0000 (09:02 -0800)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Wed, 23 Jan 2008 17:29:33 +0000 (11:29 -0600)
There is a case where 54xx HBA loads MID firmware as it use 24xx
firmware. In this case, the driver should issue
MBC_MID_INITIALIZE FIRMWARE even though the HBA doesn't support
NPIV.  This patch make changes in the driver so that could behave
accordingly.

Signed-off-by: Seokmann Ju <seokmann.ju@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/qla2xxx/qla_init.c
drivers/scsi/qla2xxx/qla_mbx.c

index 7637fa7..d0633ca 100644 (file)
@@ -1193,7 +1193,9 @@ qla2x00_init_rings(scsi_qla_host_t *ha)
 
        DEBUG(printk("scsi(%ld): Issue init firmware.\n", ha->host_no));
 
-       mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports);
+       if (ha->flags.npiv_supported)
+               mid_init_cb->count = cpu_to_le16(ha->max_npiv_vports);
+
        mid_init_cb->options = __constant_cpu_to_le16(BIT_1);
 
        rval = qla2x00_init_firmware(ha, ha->init_cb_size);
index 99d29ff..0c10c0b 100644 (file)
@@ -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->flags.npiv_supported)
+       if (ha->fw_attributes & BIT_2)
                mcp->mb[0] = MBC_MID_INITIALIZE_FIRMWARE;
        else
                mcp->mb[0] = MBC_INITIALIZE_FIRMWARE;