| From 90de630f0221556ce1278cc36db15aac0713def9 Mon Sep 17 00:00:00 2001 |
| From: Andrew Vasquez <andrew.vasquez@qlogic.com> |
| Date: Tue, 16 Aug 2011 11:29:28 -0700 |
| Subject: [PATCH] qla2xxx: Correct inadvertent loop state transitions during |
| port-update handling. |
| |
| commit 58b48576966ed0afd3f63ef17480ec12748a7119 upstream. |
| |
| Transitioning to a LOOP_UPDATE loop-state could cause the driver |
| to miss normal link/target processing. LOOP_UPDATE is a crufty |
| artifact leftover from at time the driver performed it's own |
| internal command-queuing. Safely remove this state. |
| |
| Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> |
| Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> |
| Signed-off-by: James Bottomley <JBottomley@Parallels.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c |
| index 4229bb4..8e23aa2 100644 |
| --- a/drivers/scsi/qla2xxx/qla_init.c |
| +++ b/drivers/scsi/qla2xxx/qla_init.c |
| @@ -3497,15 +3497,12 @@ qla2x00_loop_resync(scsi_qla_host_t *vha) |
| req = vha->req; |
| rsp = req->rsp; |
| |
| - atomic_set(&vha->loop_state, LOOP_UPDATE); |
| clear_bit(ISP_ABORT_RETRY, &vha->dpc_flags); |
| if (vha->flags.online) { |
| if (!(rval = qla2x00_fw_ready(vha))) { |
| /* Wait at most MAX_TARGET RSCNs for a stable link. */ |
| wait_time = 256; |
| do { |
| - atomic_set(&vha->loop_state, LOOP_UPDATE); |
| - |
| /* Issue a marker after FW becomes ready. */ |
| qla2x00_marker(vha, req, rsp, 0, 0, |
| MK_SYNC_ALL); |
| diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c |
| index db539b0..0266b78 100644 |
| --- a/drivers/scsi/qla2xxx/qla_isr.c |
| +++ b/drivers/scsi/qla2xxx/qla_isr.c |
| @@ -724,7 +724,6 @@ skip_rio: |
| vha->flags.rscn_queue_overflow = 1; |
| } |
| |
| - atomic_set(&vha->loop_state, LOOP_UPDATE); |
| atomic_set(&vha->loop_down_timer, 0); |
| vha->flags.management_server_logged_in = 0; |
| |
| -- |
| 1.7.12.rc1.1.gbce1580 |
| |