aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorGiridhar Malavali <giridhar.malavali@qlogic.com>2012-05-15 14:34:25 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-05-22 06:43:52 -0400
commitb6d0d9d588db931f711a27df889080a18fba5166 (patch)
tree622398a549cc9a2af8f967f65f670f415a3eefb0 /drivers/scsi
parent4dc77c36f86c2dc4e3f483146d33b64d12c0da3f (diff)
[SCSI] qla2xxx: Don't capture minidump for ISP82xx on flash update from application.
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/qla2xxx/qla_attr.c1
-rw-r--r--drivers/scsi/qla2xxx/qla_bsg.c3
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h1
-rw-r--r--drivers/scsi/qla2xxx/qla_nx.c12
4 files changed, 15 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index 5b3b59409a51..00df96b96a1b 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -576,6 +576,7 @@ qla2x00_sysfs_write_reset(struct file *filp, struct kobject *kobj,
576 scsi_block_requests(vha->host); 576 scsi_block_requests(vha->host);
577 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); 577 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
578 if (IS_QLA82XX(ha)) { 578 if (IS_QLA82XX(ha)) {
579 ha->flags.isp82xx_no_md_cap = 1;
579 qla82xx_idc_lock(ha); 580 qla82xx_idc_lock(ha);
580 qla82xx_set_reset_owner(vha); 581 qla82xx_set_reset_owner(vha);
581 qla82xx_idc_unlock(ha); 582 qla82xx_idc_unlock(ha);
diff --git a/drivers/scsi/qla2xxx/qla_bsg.c b/drivers/scsi/qla2xxx/qla_bsg.c
index f709e6642e5b..449ac9c2b9c1 100644
--- a/drivers/scsi/qla2xxx/qla_bsg.c
+++ b/drivers/scsi/qla2xxx/qla_bsg.c
@@ -1400,6 +1400,9 @@ qla2x00_update_optrom(struct fc_bsg_job *bsg_job)
1400 if (rval) 1400 if (rval)
1401 return rval; 1401 return rval;
1402 1402
1403 /* Set the isp82xx_no_md_cap not to capture minidump */
1404 ha->flags.isp82xx_no_md_cap = 1;
1405
1403 sg_copy_to_buffer(bsg_job->request_payload.sg_list, 1406 sg_copy_to_buffer(bsg_job->request_payload.sg_list,
1404 bsg_job->request_payload.sg_cnt, ha->optrom_buffer, 1407 bsg_job->request_payload.sg_cnt, ha->optrom_buffer,
1405 ha->optrom_region_size); 1408 ha->optrom_region_size);
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index 7aedd9011501..13c3fe1316fa 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -2462,6 +2462,7 @@ struct qla_hw_data {
2462 uint32_t thermal_supported:1; 2462 uint32_t thermal_supported:1;
2463 uint32_t isp82xx_reset_hdlr_active:1; 2463 uint32_t isp82xx_reset_hdlr_active:1;
2464 uint32_t isp82xx_reset_owner:1; 2464 uint32_t isp82xx_reset_owner:1;
2465 uint32_t isp82xx_no_md_cap:1;
2465 /* 28 bits */ 2466 /* 28 bits */
2466 } flags; 2467 } flags;
2467 2468
diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c
index f88eb833206a..e95748763645 100644
--- a/drivers/scsi/qla2xxx/qla_nx.c
+++ b/drivers/scsi/qla2xxx/qla_nx.c
@@ -2050,7 +2050,7 @@ qla82xx_intr_handler(int irq, void *dev_id)
2050 2050
2051 rsp = (struct rsp_que *) dev_id; 2051 rsp = (struct rsp_que *) dev_id;
2052 if (!rsp) { 2052 if (!rsp) {
2053 ql_log(ql_log_info, NULL, 0xb054, 2053 ql_log(ql_log_info, NULL, 0xb053,
2054 "%s: NULL response queue pointer.\n", __func__); 2054 "%s: NULL response queue pointer.\n", __func__);
2055 return IRQ_NONE; 2055 return IRQ_NONE;
2056 } 2056 }
@@ -3128,7 +3128,7 @@ qla82xx_need_reset_handler(scsi_qla_host_t *vha)
3128 if (ql2xmdenable) { 3128 if (ql2xmdenable) {
3129 if (qla82xx_md_collect(vha)) 3129 if (qla82xx_md_collect(vha))
3130 ql_log(ql_log_warn, vha, 0xb02c, 3130 ql_log(ql_log_warn, vha, 0xb02c,
3131 "Not able to collect minidump.\n"); 3131 "Minidump not collected.\n");
3132 } else 3132 } else
3133 ql_log(ql_log_warn, vha, 0xb04f, 3133 ql_log(ql_log_warn, vha, 0xb04f,
3134 "Minidump disabled.\n"); 3134 "Minidump disabled.\n");
@@ -4137,6 +4137,14 @@ qla82xx_md_collect(scsi_qla_host_t *vha)
4137 goto md_failed; 4137 goto md_failed;
4138 } 4138 }
4139 4139
4140 if (ha->flags.isp82xx_no_md_cap) {
4141 ql_log(ql_log_warn, vha, 0xb054,
4142 "Forced reset from application, "
4143 "ignore minidump capture\n");
4144 ha->flags.isp82xx_no_md_cap = 0;
4145 goto md_failed;
4146 }
4147
4140 if (qla82xx_validate_template_chksum(vha)) { 4148 if (qla82xx_validate_template_chksum(vha)) {
4141 ql_log(ql_log_info, vha, 0xb039, 4149 ql_log(ql_log_info, vha, 0xb039,
4142 "Template checksum validation error\n"); 4150 "Template checksum validation error\n");