diff options
author | Giridhar Malavali <giridhar.malavali@qlogic.com> | 2012-05-15 14:34:25 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-05-22 06:43:52 -0400 |
commit | b6d0d9d588db931f711a27df889080a18fba5166 (patch) | |
tree | 622398a549cc9a2af8f967f65f670f415a3eefb0 /drivers/scsi | |
parent | 4dc77c36f86c2dc4e3f483146d33b64d12c0da3f (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.c | 1 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_bsg.c | 3 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 1 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_nx.c | 12 |
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"); |