diff options
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_mid.c')
| -rw-r--r-- | drivers/scsi/qla2xxx/qla_mid.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c index 3f23932210c..785c61279e6 100644 --- a/drivers/scsi/qla2xxx/qla_mid.c +++ b/drivers/scsi/qla2xxx/qla_mid.c | |||
| @@ -69,9 +69,10 @@ static scsi_qla_host_t * | |||
| 69 | qla24xx_find_vhost_by_name(struct qla_hw_data *ha, uint8_t *port_name) | 69 | qla24xx_find_vhost_by_name(struct qla_hw_data *ha, uint8_t *port_name) |
| 70 | { | 70 | { |
| 71 | scsi_qla_host_t *vha; | 71 | scsi_qla_host_t *vha; |
| 72 | struct scsi_qla_host *tvha; | ||
| 72 | 73 | ||
| 73 | /* Locate matching device in database. */ | 74 | /* Locate matching device in database. */ |
| 74 | list_for_each_entry(vha, &ha->vp_list, list) { | 75 | list_for_each_entry_safe(vha, tvha, &ha->vp_list, list) { |
| 75 | if (!memcmp(port_name, vha->port_name, WWN_SIZE)) | 76 | if (!memcmp(port_name, vha->port_name, WWN_SIZE)) |
| 76 | return vha; | 77 | return vha; |
| 77 | } | 78 | } |
| @@ -194,11 +195,11 @@ qla24xx_configure_vp(scsi_qla_host_t *vha) | |||
| 194 | void | 195 | void |
| 195 | qla2x00_alert_all_vps(struct rsp_que *rsp, uint16_t *mb) | 196 | qla2x00_alert_all_vps(struct rsp_que *rsp, uint16_t *mb) |
| 196 | { | 197 | { |
| 197 | scsi_qla_host_t *vha; | 198 | scsi_qla_host_t *vha, *tvha; |
| 198 | struct qla_hw_data *ha = rsp->hw; | 199 | struct qla_hw_data *ha = rsp->hw; |
| 199 | int i = 0; | 200 | int i = 0; |
| 200 | 201 | ||
| 201 | list_for_each_entry(vha, &ha->vp_list, list) { | 202 | list_for_each_entry_safe(vha, tvha, &ha->vp_list, list) { |
| 202 | if (vha->vp_idx) { | 203 | if (vha->vp_idx) { |
| 203 | switch (mb[0]) { | 204 | switch (mb[0]) { |
| 204 | case MBA_LIP_OCCURRED: | 205 | case MBA_LIP_OCCURRED: |
| @@ -300,6 +301,7 @@ qla2x00_do_dpc_all_vps(scsi_qla_host_t *vha) | |||
| 300 | int ret; | 301 | int ret; |
| 301 | struct qla_hw_data *ha = vha->hw; | 302 | struct qla_hw_data *ha = vha->hw; |
| 302 | scsi_qla_host_t *vp; | 303 | scsi_qla_host_t *vp; |
| 304 | struct scsi_qla_host *tvp; | ||
| 303 | 305 | ||
| 304 | if (vha->vp_idx) | 306 | if (vha->vp_idx) |
| 305 | return; | 307 | return; |
| @@ -308,7 +310,7 @@ qla2x00_do_dpc_all_vps(scsi_qla_host_t *vha) | |||
| 308 | 310 | ||
| 309 | clear_bit(VP_DPC_NEEDED, &vha->dpc_flags); | 311 | clear_bit(VP_DPC_NEEDED, &vha->dpc_flags); |
| 310 | 312 | ||
| 311 | list_for_each_entry(vp, &ha->vp_list, list) { | 313 | list_for_each_entry_safe(vp, tvp, &ha->vp_list, list) { |
| 312 | if (vp->vp_idx) | 314 | if (vp->vp_idx) |
| 313 | ret = qla2x00_do_dpc_vp(vp); | 315 | ret = qla2x00_do_dpc_vp(vp); |
| 314 | } | 316 | } |
