From 20e835b43f3f81e29f34e06099a47285ffebe688 Mon Sep 17 00:00:00 2001 From: Lalit Chandivade Date: Mon, 13 Feb 2012 18:30:42 +0530 Subject: [PATCH] [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 --- drivers/scsi/qla4xxx/ql4_os.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c index 089443add47f..a9ff05e24f34 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; } -- 2.39.2