lpfc 8.3.38: Fixed NMI watch dog panic's when resetting the hba.
Subsystems (2)
PATCH 1/11 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 <[email protected]>
---
lpfc_attr.c | 2 - lpfc_bsg.c | 2 - lpfc_els.c | 6 +-- lpfc_hbadisc.c | 5 +- lpfc_init.c | 1 lpfc_nportdisc.c | 1 lpfc_scsi.c | 4 +- lpfc_sli.c | 92 +++++++++++++++++++++++++++++++++++++------------------ 8 files changed, 70 insertions(+), 43 deletions(-)
drivers/scsi/lpfc/lpfc_attr.c +1 -1
@@ -692,7 +692,7 @@ lpfc_do_offline(struct lpfc_hba *phba, u*/ for (i =0 ; i < psli->num_rings; i++) { pring = &psli->ring[i]; -while (pring->txcmplq_cnt) { +while (!list_empty (&pring->txcmplq)) {msleep (10 );if (cnt++ >500 ) {/* 5 secs */ lpfc_printf_log(phba,
drivers/scsi/lpfc/lpfc_bsg.c +1 -1
@@ -1559,7 +1559,7 @@ lpfc_bsg_diag_mode_enter(struct lpfc_hbascsi_block_requests (shost); } -while (pring->txcmplq_cnt) { +while (!list_empty (&pring->txcmplq)) {if (i++ >500 )/* wait up to 5 seconds */ break ;msleep (10 );
drivers/scsi/lpfc/lpfc_els.c +2 -4
@@ -6225,7 +6225,7 @@ lpfc_els_timeout_handler(struct lpfc_vpospin_unlock_irq (&phba->hbalock); } -if (phba->sli.ring[LPFC_ELS_RING ].txcmplq_cnt) +if (!list_empty (&phba->sli.ring[LPFC_ELS_RING ].txcmplq))mod_timer (&vport->els_tmofunc, jiffies +HZ * timeout); }
@@ -6279,7 +6279,6 @@ lpfc_els_flush_cmd(struct lpfc_vport *vpcontinue ;list_move_tail (&piocb->list, &completions); - pring->txq_cnt--; }list_for_each_entry_safe (piocb, tmp_iocb, &pring->txcmplq, list) {
@@ -6339,7 +6338,6 @@ lpfc_els_flush_all_cmd(struct lpfc_hba cmd->ulpCommand == CMD_ABORT_XRI_CN)continue ;list_move_tail (&piocb->list, &completions); - pring->txq_cnt--; }list_for_each_entry_safe (piocb, tmp_iocb, &pring->txcmplq, list) {if (piocb->iocb_flag &LPFC_IO_LIBDFC )
@@ -8065,7 +8063,7 @@ lpfc_sli4_els_xri_aborted(struct lpfc_hb rxid, 1);/* Check if TXQ queue needs to be serviced */ -if (pring->txq_cnt) +if (!(list_empty (&pring->txq)))lpfc_worker_wake_up (phba);return ; }
drivers/scsi/lpfc/lpfc_hbadisc.c +2 -3
@@ -696,7 +696,8 @@ lpfc_work_done(struct lpfc_hba *phba) (status & HA_RXMASK)); } -if ((phba->sli_rev ==LPFC_SLI_REV4 ) && pring->txq_cnt) +if ((phba->sli_rev ==LPFC_SLI_REV4 ) & + (!list_empty (&pring->txq)))lpfc_drain_txq (phba);/* * Turn on Ring interrupts
@@ -4354,7 +4355,6 @@ lpfc_no_rpi(struct lpfc_hba *phba, strucwith an error */ list_move_tail (&iocb->list, &completions); - pring->txq_cnt--; } }spin_unlock_irq (&phba->hbalock);
@@ -5055,7 +5055,6 @@ lpfc_free_tx(struct lpfc_hba *phba, stru (icmd->ulpCommand == CMD_XMIT_ELS_RSP64_CX)) {list_move_tail (&iocb->list, &completions); - pring->txq_cnt--; } }
drivers/scsi/lpfc/lpfc_init.c +0 -1
@@ -839,7 +839,6 @@ lpfc_hba_down_post_s3(struct lpfc_hba *p* way, nothing should be on txcmplq as it will NEVER complete. */ list_splice_init (&pring->txcmplq, &completions); - pring->txcmplq_cnt =0 ;spin_unlock_irq (&phba->hbalock);/* Cancel all the IOCBs from the completions list */
drivers/scsi/lpfc/lpfc_nportdisc.c +0 -1
@@ -226,7 +226,6 @@ lpfc_els_abort(struct lpfc_hba *phba, stif (lpfc_check_sli_ndlp (phba, pring, iocb, ndlp)) {/* It matches, so deque and call compl with anp error */ list_move_tail (&iocb->list, &completions); - pring->txq_cnt--; } }
drivers/scsi/lpfc/lpfc_scsi.c +2 -2
@@ -732,7 +732,7 @@ lpfc_sli4_fcp_xri_aborted(struct lpfc_hb psb = container_of(iocbq, struct lpfc_scsi_buf, cur_iocbq); psb->exch_busy =0 ;spin_unlock_irqrestore (&phba->hbalock, iflag); -if (pring->txq_cnt) +if (!list_empty (&pring->txq))lpfc_worker_wake_up (phba);return ;
@@ -4246,7 +4246,7 @@ static __inline__ void lpfc_poll_rearm_tunsigned long poll_tmo_expires = (jiffies +msecs_to_jiffies (phba->cfg_poll_tmo)); -if (phba->sli.ring[LPFC_FCP_RING ].txcmplq_cnt) +if (!list_empty (&phba->sli.ring[LPFC_FCP_RING ].txcmplq))mod_timer (&phba->fcp_poll_timer, poll_tmo_expires); }
drivers/scsi/lpfc/lpfc_sli.c +62 -30
237 lines not on this page · raw message