From 608d700aafbd7c429c4ecf1cc1343c33773c1581 Mon Sep 17 00:00:00 2001 From: James Smart Date: Wed, 9 May 2012 21:18:40 -0400 Subject: [PATCH] --- yaml --- r: 302528 b: refs/heads/master c: 75ad83a452116c00c092bdc4c842c4401cd24080 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/scsi/lpfc/lpfc_scsi.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 9980ef75260a..6873bfe4e81f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cc459f19e32bdc783f9f0ce5c872c1ff399e3e82 +refs/heads/master: 75ad83a452116c00c092bdc4c842c4401cd24080 diff --git a/trunk/drivers/scsi/lpfc/lpfc_scsi.c b/trunk/drivers/scsi/lpfc/lpfc_scsi.c index d5f3fcc3e548..9434b0379abe 100644 --- a/trunk/drivers/scsi/lpfc/lpfc_scsi.c +++ b/trunk/drivers/scsi/lpfc/lpfc_scsi.c @@ -399,6 +399,14 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba) num_rsrc_err = atomic_read(&phba->num_rsrc_err); num_cmd_success = atomic_read(&phba->num_cmd_success); + /* + * The error and success command counters are global per + * driver instance. If another handler has already + * operated on this error event, just exit. + */ + if (num_rsrc_err == 0) + return; + vports = lpfc_create_vport_work_array(phba); if (vports != NULL) for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) {