Signed-off-by: Giridhar Malavali <giridhar.malv...@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kash...@qlogic.com>
---
 drivers/scsi/qla2xxx/qla_def.h |    1 +
 drivers/scsi/qla2xxx/qla_nx.c  |   12 ++++++------
 drivers/scsi/qla2xxx/qla_nx2.c |    3 +++
 drivers/scsi/qla2xxx/qla_os.c  |    1 +
 4 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 89bece7..bab1cf1 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -3141,6 +3141,7 @@ struct qla_hw_data {
        uint32_t        fw_dump_len;
        int             fw_dumped;
        int             fw_dump_reading;
+       int             prev_minidump_failed;
        dma_addr_t      eft_dma;
        void            *eft;
 /* Current size of mctp dump is 0x086064 bytes */
diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c
index 81388e9..3c5819a 100644
--- a/drivers/scsi/qla2xxx/qla_nx.c
+++ b/drivers/scsi/qla2xxx/qla_nx.c
@@ -3142,18 +3142,18 @@ qla82xx_check_md_needed(scsi_qla_host_t *vha)
 
        if (ql2xmdenable) {
                if (!ha->fw_dumped) {
-                       if (fw_major_version != ha->fw_major_version ||
+                       if ((fw_major_version != ha->fw_major_version ||
                            fw_minor_version != ha->fw_minor_version ||
-                           fw_subminor_version != ha->fw_subminor_version) {
+                           fw_subminor_version != ha->fw_subminor_version) ||
+                           (ha->prev_minidump_failed)) {
                                ql_dbg(ql_dbg_p3p, vha, 0xb02d,
-                                   "Firmware version differs "
-                                   "Previous version: %d:%d:%d - "
-                                   "New version: %d:%d:%d\n",
+                                   "Firmware version differs Previous version: 
%d:%d:%d - New version: %d:%d:%d, prev_minidump_failed: %d.\n",
                                    fw_major_version, fw_minor_version,
                                    fw_subminor_version,
                                    ha->fw_major_version,
                                    ha->fw_minor_version,
-                                   ha->fw_subminor_version);
+                                   ha->fw_subminor_version,
+                                   ha->prev_minidump_failed);
                                /* Release MiniDump resources */
                                qla82xx_md_free(vha);
                                /* ALlocate MiniDump resources */
diff --git a/drivers/scsi/qla2xxx/qla_nx2.c b/drivers/scsi/qla2xxx/qla_nx2.c
index e381835..d36a623 100644
--- a/drivers/scsi/qla2xxx/qla_nx2.c
+++ b/drivers/scsi/qla2xxx/qla_nx2.c
@@ -3125,6 +3125,7 @@ skip_nxt_entry:
                    "Dump data mismatch: Data collected: "
                    "[0x%x], total_data_size:[0x%x]\n",
                    data_collected, ha->md_dump_size);
+               rval = QLA_FUNCTION_FAILED;
                goto md_failed;
        }
 
@@ -3149,10 +3150,12 @@ qla8044_get_minidump(struct scsi_qla_host *vha)
 
        if (!qla8044_collect_md_data(vha)) {
                ha->fw_dumped = 1;
+               ha->prev_minidump_failed = 0;
        } else {
                ql_log(ql_log_fatal, vha, 0xb0db,
                    "%s: Unable to collect minidump\n",
                    __func__);
+               ha->prev_minidump_failed = 1;
        }
 }
 
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 1b1cd75..0114ea4 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -2885,6 +2885,7 @@ skip_dpc:
 
        base_vha->flags.init_done = 1;
        base_vha->flags.online = 1;
+       ha->prev_minidump_failed = 0;
 
        ql_dbg(ql_dbg_init, base_vha, 0x00f2,
            "Init done and hba is online.\n");
-- 
1.7.7

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to