aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla4xxx/ql4_os.c
diff options
context:
space:
mode:
authorNilesh Javali <nilesh.javali@qlogic.com>2013-01-20 23:50:58 -0500
committerJames Bottomley <JBottomley@Parallels.com>2013-01-29 21:40:23 -0500
commit026fbd3aaae796d2457898497374b68f3477ee2f (patch)
tree5455f7c1ba85c1a67c94a0f1b0a1763a8ad89b35 /drivers/scsi/qla4xxx/ql4_os.c
parent9cb33f184e5d57054caf24c2bd657517e557367c (diff)
[SCSI] qla4xxx: Quiesce driver activities while loopback
Quiesce all different activities performed by driver upon the link events while loopback diagnostics is in progress. Signed-off-by: Nilesh Javali <nilesh.javali@qlogic.com> Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla4xxx/ql4_os.c')
-rw-r--r--drivers/scsi/qla4xxx/ql4_os.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index 60526bb469d3..1df13872ef9d 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -2242,6 +2242,7 @@ static int qla4xxx_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)
2242 test_bit(DPC_HA_NEED_QUIESCENT, &ha->dpc_flags) || 2242 test_bit(DPC_HA_NEED_QUIESCENT, &ha->dpc_flags) ||
2243 !test_bit(AF_ONLINE, &ha->flags) || 2243 !test_bit(AF_ONLINE, &ha->flags) ||
2244 !test_bit(AF_LINK_UP, &ha->flags) || 2244 !test_bit(AF_LINK_UP, &ha->flags) ||
2245 test_bit(AF_LOOPBACK, &ha->flags) ||
2245 test_bit(DPC_RESET_HA_FW_CONTEXT, &ha->dpc_flags)) 2246 test_bit(DPC_RESET_HA_FW_CONTEXT, &ha->dpc_flags))
2246 goto qc_host_busy; 2247 goto qc_host_busy;
2247 2248
@@ -3480,7 +3481,8 @@ dpc_post_reset_ha:
3480 } 3481 }
3481 3482
3482 /* ---- link change? --- */ 3483 /* ---- link change? --- */
3483 if (test_and_clear_bit(DPC_LINK_CHANGED, &ha->dpc_flags)) { 3484 if (!test_bit(AF_LOOPBACK, &ha->flags) &&
3485 test_and_clear_bit(DPC_LINK_CHANGED, &ha->dpc_flags)) {
3484 if (!test_bit(AF_LINK_UP, &ha->flags)) { 3486 if (!test_bit(AF_LINK_UP, &ha->flags)) {
3485 /* ---- link down? --- */ 3487 /* ---- link down? --- */
3486 qla4xxx_mark_all_devices_missing(ha); 3488 qla4xxx_mark_all_devices_missing(ha);