[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>
This commit is contained in:
parent
4dc77c36f8
commit
b6d0d9d588
4 changed files with 15 additions and 2 deletions
|
@ -576,6 +576,7 @@ qla2x00_sysfs_write_reset(struct file *filp, struct kobject *kobj,
|
||||||
scsi_block_requests(vha->host);
|
scsi_block_requests(vha->host);
|
||||||
set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
|
set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
|
||||||
if (IS_QLA82XX(ha)) {
|
if (IS_QLA82XX(ha)) {
|
||||||
|
ha->flags.isp82xx_no_md_cap = 1;
|
||||||
qla82xx_idc_lock(ha);
|
qla82xx_idc_lock(ha);
|
||||||
qla82xx_set_reset_owner(vha);
|
qla82xx_set_reset_owner(vha);
|
||||||
qla82xx_idc_unlock(ha);
|
qla82xx_idc_unlock(ha);
|
||||||
|
|
|
@ -1400,6 +1400,9 @@ qla2x00_update_optrom(struct fc_bsg_job *bsg_job)
|
||||||
if (rval)
|
if (rval)
|
||||||
return rval;
|
return rval;
|
||||||
|
|
||||||
|
/* Set the isp82xx_no_md_cap not to capture minidump */
|
||||||
|
ha->flags.isp82xx_no_md_cap = 1;
|
||||||
|
|
||||||
sg_copy_to_buffer(bsg_job->request_payload.sg_list,
|
sg_copy_to_buffer(bsg_job->request_payload.sg_list,
|
||||||
bsg_job->request_payload.sg_cnt, ha->optrom_buffer,
|
bsg_job->request_payload.sg_cnt, ha->optrom_buffer,
|
||||||
ha->optrom_region_size);
|
ha->optrom_region_size);
|
||||||
|
|
|
@ -2462,6 +2462,7 @@ struct qla_hw_data {
|
||||||
uint32_t thermal_supported:1;
|
uint32_t thermal_supported:1;
|
||||||
uint32_t isp82xx_reset_hdlr_active:1;
|
uint32_t isp82xx_reset_hdlr_active:1;
|
||||||
uint32_t isp82xx_reset_owner:1;
|
uint32_t isp82xx_reset_owner:1;
|
||||||
|
uint32_t isp82xx_no_md_cap:1;
|
||||||
/* 28 bits */
|
/* 28 bits */
|
||||||
} flags;
|
} flags;
|
||||||
|
|
||||||
|
|
|
@ -2050,7 +2050,7 @@ qla82xx_intr_handler(int irq, void *dev_id)
|
||||||
|
|
||||||
rsp = (struct rsp_que *) dev_id;
|
rsp = (struct rsp_que *) dev_id;
|
||||||
if (!rsp) {
|
if (!rsp) {
|
||||||
ql_log(ql_log_info, NULL, 0xb054,
|
ql_log(ql_log_info, NULL, 0xb053,
|
||||||
"%s: NULL response queue pointer.\n", __func__);
|
"%s: NULL response queue pointer.\n", __func__);
|
||||||
return IRQ_NONE;
|
return IRQ_NONE;
|
||||||
}
|
}
|
||||||
|
@ -3128,7 +3128,7 @@ qla82xx_need_reset_handler(scsi_qla_host_t *vha)
|
||||||
if (ql2xmdenable) {
|
if (ql2xmdenable) {
|
||||||
if (qla82xx_md_collect(vha))
|
if (qla82xx_md_collect(vha))
|
||||||
ql_log(ql_log_warn, vha, 0xb02c,
|
ql_log(ql_log_warn, vha, 0xb02c,
|
||||||
"Not able to collect minidump.\n");
|
"Minidump not collected.\n");
|
||||||
} else
|
} else
|
||||||
ql_log(ql_log_warn, vha, 0xb04f,
|
ql_log(ql_log_warn, vha, 0xb04f,
|
||||||
"Minidump disabled.\n");
|
"Minidump disabled.\n");
|
||||||
|
@ -4137,6 +4137,14 @@ qla82xx_md_collect(scsi_qla_host_t *vha)
|
||||||
goto md_failed;
|
goto md_failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ha->flags.isp82xx_no_md_cap) {
|
||||||
|
ql_log(ql_log_warn, vha, 0xb054,
|
||||||
|
"Forced reset from application, "
|
||||||
|
"ignore minidump capture\n");
|
||||||
|
ha->flags.isp82xx_no_md_cap = 0;
|
||||||
|
goto md_failed;
|
||||||
|
}
|
||||||
|
|
||||||
if (qla82xx_validate_template_chksum(vha)) {
|
if (qla82xx_validate_template_chksum(vha)) {
|
||||||
ql_log(ql_log_info, vha, 0xb039,
|
ql_log(ql_log_info, vha, 0xb039,
|
||||||
"Template checksum validation error\n");
|
"Template checksum validation error\n");
|
||||||
|
|
Reference in a new issue