During attachment, the driver writes the EQ doorbell to disable
potential interrupts from an EQ. The current EQ doorbell format
used for clearing the interrupt is incorrect and uses an if_type=2
format, making the operation act on the wrong EQ.

Correct the code to use the proper if_type=6 EQ doorbell format.

Signed-off-by: Dick Kennedy <dick.kenn...@broadcom.com>
Signed-off-by: James Smart <james.sm...@broadcom.com>
---
 drivers/scsi/lpfc/lpfc_sli.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 495de99ed82d..99fddd056675 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -392,11 +392,7 @@ lpfc_sli4_if6_eq_clr_intr(struct lpfc_queue *q)
        struct lpfc_register doorbell;
 
        doorbell.word0 = 0;
-       bf_set(lpfc_eqcq_doorbell_eqci, &doorbell, 1);
-       bf_set(lpfc_eqcq_doorbell_qt, &doorbell, LPFC_QUEUE_TYPE_EVENT);
-       bf_set(lpfc_eqcq_doorbell_eqid_hi, &doorbell,
-               (q->queue_id >> LPFC_EQID_HI_FIELD_SHIFT));
-       bf_set(lpfc_eqcq_doorbell_eqid_lo, &doorbell, q->queue_id);
+       bf_set(lpfc_if6_eq_doorbell_eqid, &doorbell, q->queue_id);
        writel(doorbell.word0, q->phba->sli4_hba.EQDBregaddr);
 }
 
-- 
2.13.1

Reply via email to