From: Lalit Chandivade Date: Mon, 13 Feb 2012 13:00:42 +0000 (+0530) Subject: [SCSI] qla4xxx: Fix verify boot idx correctly X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=20e835b43f3f81e29f34e06099a47285ffebe688;p=mv-sheeva.git [SCSI] qla4xxx: Fix verify boot idx correctly qla4xxx_verify_boot_idx can falsely report a DDB to be boot target if ha->pri_ddb_idx and ha->sec_ddb_idx are not initialized correctly. What this could cause is if there is DDB entry in FLash at index 0, then qla4xxx_verify_boot_idx would return wrong result as ha->pri_ddb_idx is not set correctly. Fixed the qla4xxx_get_boot_info to set the ha->pri_ddb_idx and ha->sec_ddb_idx correctly. Signed-off-by: Lalit Chandivade Signed-off-by: Vikas Chaudhary Reviewed-by: Mike Christie Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c index 089443add47..a9ff05e24f3 100644 --- a/drivers/scsi/qla4xxx/ql4_os.c +++ b/drivers/scsi/qla4xxx/ql4_os.c @@ -3463,12 +3463,11 @@ static int get_fw_boot_info(struct scsi_qla_host *ha, uint16_t ddb_index[]) " target ID %d\n", __func__, ddb_index[0], ddb_index[1])); - ha->pri_ddb_idx = ddb_index[0]; - ha->sec_ddb_idx = ddb_index[1]; - exit_boot_info_free: dma_free_coherent(&ha->pdev->dev, size, buf, buf_dma); exit_boot_info: + ha->pri_ddb_idx = ddb_index[0]; + ha->sec_ddb_idx = ddb_index[1]; return ret; }