diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 87ae175a0830..103a5aa4ae81 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -9194,6 +9194,7 @@ lpfc_sli4_fp_handle_wcqe(struct lpfc_hba *phba, struct lpfc_queue *cq, | |||
9194 | { | 9194 | { |
9195 | struct lpfc_wcqe_release wcqe; | 9195 | struct lpfc_wcqe_release wcqe; |
9196 | bool workposted = false; | 9196 | bool workposted = false; |
9197 | unsigned long iflag; | ||
9197 | 9198 | ||
9198 | /* Copy the work queue CQE and convert endian order if needed */ | 9199 | /* Copy the work queue CQE and convert endian order if needed */ |
9199 | lpfc_sli_pcimem_bcopy(cqe, &wcqe, sizeof(struct lpfc_cqe)); | 9200 | lpfc_sli_pcimem_bcopy(cqe, &wcqe, sizeof(struct lpfc_cqe)); |
@@ -9202,6 +9203,9 @@ lpfc_sli4_fp_handle_wcqe(struct lpfc_hba *phba, struct lpfc_queue *cq, | |||
9202 | switch (bf_get(lpfc_wcqe_c_code, &wcqe)) { | 9203 | switch (bf_get(lpfc_wcqe_c_code, &wcqe)) { |
9203 | case CQE_CODE_COMPL_WQE: | 9204 | case CQE_CODE_COMPL_WQE: |
9204 | /* Process the WQ complete event */ | 9205 | /* Process the WQ complete event */ |
9206 | spin_lock_irqsave(&phba->hbalock, iflag); | ||
9207 | phba->last_completion_time = jiffies; | ||
9208 | spin_unlock_irqrestore(&phba->hbalock, iflag); | ||
9205 | lpfc_sli4_fp_handle_fcp_wcqe(phba, | 9209 | lpfc_sli4_fp_handle_fcp_wcqe(phba, |
9206 | (struct lpfc_wcqe_complete *)&wcqe); | 9210 | (struct lpfc_wcqe_complete *)&wcqe); |
9207 | break; | 9211 | break; |