[SCSI] qla2xxx: Properly re-register FC4/FDMI after physical and logical link disruptions.
Original code would not register FC4 nor FDMI information after a logical tear-down of an VFC link. Code now triggers registration date during processing of a 'Report ID Acquisition IOCB', which is submitted after a FLOGI or FDISC completes. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
9ca1d01f7a
commit
531a82d1bd
3 changed files with 8 additions and 6 deletions
|
@ -277,7 +277,6 @@ qla2x00_initialize_adapter(scsi_qla_host_t *vha)
|
||||||
vha->marker_needed = 0;
|
vha->marker_needed = 0;
|
||||||
ha->isp_abort_cnt = 0;
|
ha->isp_abort_cnt = 0;
|
||||||
ha->beacon_blink_led = 0;
|
ha->beacon_blink_led = 0;
|
||||||
set_bit(REGISTER_FDMI_NEEDED, &vha->dpc_flags);
|
|
||||||
|
|
||||||
set_bit(0, ha->req_qid_map);
|
set_bit(0, ha->req_qid_map);
|
||||||
set_bit(0, ha->rsp_qid_map);
|
set_bit(0, ha->rsp_qid_map);
|
||||||
|
|
|
@ -2782,8 +2782,10 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *vha,
|
||||||
vp_idx, MSB(stat),
|
vp_idx, MSB(stat),
|
||||||
rptid_entry->port_id[2], rptid_entry->port_id[1],
|
rptid_entry->port_id[2], rptid_entry->port_id[1],
|
||||||
rptid_entry->port_id[0]));
|
rptid_entry->port_id[0]));
|
||||||
if (vp_idx == 0)
|
|
||||||
return;
|
vp = vha;
|
||||||
|
if (vp_idx == 0 && (MSB(stat) != 1))
|
||||||
|
goto reg_needed;
|
||||||
|
|
||||||
if (MSB(stat) == 1) {
|
if (MSB(stat) == 1) {
|
||||||
DEBUG2(printk("scsi(%ld): Could not acquire ID for "
|
DEBUG2(printk("scsi(%ld): Could not acquire ID for "
|
||||||
|
@ -2806,8 +2808,11 @@ qla24xx_report_id_acquisition(scsi_qla_host_t *vha,
|
||||||
* response queue. Handle it in dpc context.
|
* response queue. Handle it in dpc context.
|
||||||
*/
|
*/
|
||||||
set_bit(VP_IDX_ACQUIRED, &vp->vp_flags);
|
set_bit(VP_IDX_ACQUIRED, &vp->vp_flags);
|
||||||
set_bit(VP_DPC_NEEDED, &vha->dpc_flags);
|
|
||||||
|
|
||||||
|
reg_needed:
|
||||||
|
set_bit(REGISTER_FC4_NEEDED, &vp->dpc_flags);
|
||||||
|
set_bit(REGISTER_FDMI_NEEDED, &vp->dpc_flags);
|
||||||
|
set_bit(VP_DPC_NEEDED, &vha->dpc_flags);
|
||||||
qla2xxx_wake_dpc(vha);
|
qla2xxx_wake_dpc(vha);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -382,8 +382,6 @@ qla24xx_create_vhost(struct fc_vport *fc_vport)
|
||||||
vha->mgmt_svr_loop_id = 10 + vha->vp_idx;
|
vha->mgmt_svr_loop_id = 10 + vha->vp_idx;
|
||||||
|
|
||||||
vha->dpc_flags = 0L;
|
vha->dpc_flags = 0L;
|
||||||
set_bit(REGISTER_FDMI_NEEDED, &vha->dpc_flags);
|
|
||||||
set_bit(REGISTER_FC4_NEEDED, &vha->dpc_flags);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* To fix the issue of processing a parent's RSCN for the vport before
|
* To fix the issue of processing a parent's RSCN for the vport before
|
||||||
|
|
Loading…
Add table
Reference in a new issue