2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-11-20 16:46:23 +08:00

[SCSI] qla2xxx: Correct issue where vport-state was not updated during an ISP_ABORT_NEEDED requst.

While running IO simultaneously through physical port and virtual
port, if user changes Data Rate (from scli utility), IO through
virtual port fails.  It failed because the vport had not received
the ISP_ABORT_NEEDED notification.

Signed-Off-by: Seokmann Ju <seokmann.ju@qlogic.com>
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
Seokmann Ju 2008-01-31 12:33:51 -08:00 committed by James Bottomley
parent 963b0fdd3a
commit 99363ef81c

View File

@ -2227,6 +2227,9 @@ qla2x00_do_dpc(void *data)
fc_port_t *fcport; fc_port_t *fcport;
uint8_t status; uint8_t status;
uint16_t next_loopid; uint16_t next_loopid;
struct scsi_qla_host *vha;
int i;
ha = (scsi_qla_host_t *)data; ha = (scsi_qla_host_t *)data;
@ -2269,6 +2272,18 @@ qla2x00_do_dpc(void *data)
} }
clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags); clear_bit(ABORT_ISP_ACTIVE, &ha->dpc_flags);
} }
for_each_mapped_vp_idx(ha, i) {
list_for_each_entry(vha, &ha->vp_list,
vp_list) {
if (i == vha->vp_idx) {
set_bit(ISP_ABORT_NEEDED,
&vha->dpc_flags);
break;
}
}
}
DEBUG(printk("scsi(%ld): dpc: qla2x00_abort_isp end\n", DEBUG(printk("scsi(%ld): dpc: qla2x00_abort_isp end\n",
ha->host_no)); ha->host_no));
} }