From bb2d52b2fd8b19355957e34271f79917f69e4059 Mon Sep 17 00:00:00 2001 From: Andrew Vasquez Date: Thu, 18 Feb 2010 10:07:27 -0800 Subject: [SCSI] qla2xxx: Correct loop-resync issues during SNS scans. Original code could inadvertently skip the post processing of port information returned from the SNS scan, if any link-flopping asynchronous-events were received (noticed in FCAL topologies). Cc: stable@kernel.org Signed-off-by: Andrew Vasquez Signed-off-by: Giridhar Malavali Signed-off-by: James Bottomley --- drivers/scsi/qla2xxx/qla_init.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'drivers/scsi') diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 1128c8d5771b..96a609ba25fb 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -2910,8 +2910,13 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha, if (qla2x00_is_reserved_id(vha, loop_id)) continue; - if (atomic_read(&vha->loop_down_timer) || LOOP_TRANSITION(vha)) + if (atomic_read(&vha->loop_down_timer) || + LOOP_TRANSITION(vha)) { + atomic_set(&vha->loop_down_timer, 0); + set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); + set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); break; + } if (swl != NULL) { if (last_dev) { -- cgit v1.2.3