aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_els.c
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2013-03-01 16:35:12 -0500
committerJames Bottomley <JBottomley@Parallels.com>2013-04-09 17:21:58 -0400
commit0e9bb8d79c52ca115f3fc4a692ca0dd6931e2eeb (patch)
treeca868fc67d44fbcff55e449f00ee4a4142098740 /drivers/scsi/lpfc/lpfc_els.c
parentd4a2618fa77b5e58ec15342972bd3505a1c3f551 (diff)
[SCSI] lpfc 8.3.38: Fixed NMI watch dog panic's when resetting the hba.
Fixed NMI watch dog panic's when resetting the hba. Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_els.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 08d156a9094f..b7a61ff43ca8 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -6225,7 +6225,7 @@ lpfc_els_timeout_handler(struct lpfc_vport *vport)
6225 spin_unlock_irq(&phba->hbalock); 6225 spin_unlock_irq(&phba->hbalock);
6226 } 6226 }
6227 6227
6228 if (phba->sli.ring[LPFC_ELS_RING].txcmplq_cnt) 6228 if (!list_empty(&phba->sli.ring[LPFC_ELS_RING].txcmplq))
6229 mod_timer(&vport->els_tmofunc, jiffies + HZ * timeout); 6229 mod_timer(&vport->els_tmofunc, jiffies + HZ * timeout);
6230} 6230}
6231 6231
@@ -6279,7 +6279,6 @@ lpfc_els_flush_cmd(struct lpfc_vport *vport)
6279 continue; 6279 continue;
6280 6280
6281 list_move_tail(&piocb->list, &completions); 6281 list_move_tail(&piocb->list, &completions);
6282 pring->txq_cnt--;
6283 } 6282 }
6284 6283
6285 list_for_each_entry_safe(piocb, tmp_iocb, &pring->txcmplq, list) { 6284 list_for_each_entry_safe(piocb, tmp_iocb, &pring->txcmplq, list) {
@@ -6339,7 +6338,6 @@ lpfc_els_flush_all_cmd(struct lpfc_hba *phba)
6339 cmd->ulpCommand == CMD_ABORT_XRI_CN) 6338 cmd->ulpCommand == CMD_ABORT_XRI_CN)
6340 continue; 6339 continue;
6341 list_move_tail(&piocb->list, &completions); 6340 list_move_tail(&piocb->list, &completions);
6342 pring->txq_cnt--;
6343 } 6341 }
6344 list_for_each_entry_safe(piocb, tmp_iocb, &pring->txcmplq, list) { 6342 list_for_each_entry_safe(piocb, tmp_iocb, &pring->txcmplq, list) {
6345 if (piocb->iocb_flag & LPFC_IO_LIBDFC) 6343 if (piocb->iocb_flag & LPFC_IO_LIBDFC)
@@ -8065,7 +8063,7 @@ lpfc_sli4_els_xri_aborted(struct lpfc_hba *phba,
8065 rxid, 1); 8063 rxid, 1);
8066 8064
8067 /* Check if TXQ queue needs to be serviced */ 8065 /* Check if TXQ queue needs to be serviced */
8068 if (pring->txq_cnt) 8066 if (!(list_empty(&pring->txq)))
8069 lpfc_worker_wake_up(phba); 8067 lpfc_worker_wake_up(phba);
8070 return; 8068 return;
8071 } 8069 }