habanalabs/gaudi2: free event irq if init fails
authorOded Gabbay <ogabbay@kernel.org>
Sun, 4 Sep 2022 07:39:27 +0000 (10:39 +0300)
committerOded Gabbay <ogabbay@kernel.org>
Mon, 19 Sep 2022 12:08:38 +0000 (15:08 +0300)
In case initialization fails after event irq was requested, we need to
release that irq.

Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/gaudi2/gaudi2.c

index db18e06..60694b8 100644 (file)
@@ -3581,7 +3581,7 @@ static int gaudi2_enable_msix(struct hl_device *hdev)
        rc = gaudi2_dec_enable_msix(hdev);
        if (rc) {
                dev_err(hdev->dev, "Failed to enable decoder IRQ");
-               goto free_completion_irq;
+               goto free_event_irq;
        }
 
        for (i = GAUDI2_IRQ_NUM_USER_FIRST, j = prop->user_dec_intr_count, user_irq_init_cnt = 0;
@@ -3612,6 +3612,10 @@ free_user_irq:
 
        gaudi2_dec_disable_msix(hdev, GAUDI2_IRQ_NUM_SHARED_DEC1_ABNRM + 1);
 
+free_event_irq:
+       irq = pci_irq_vector(hdev->pdev, GAUDI2_IRQ_NUM_EVENT_QUEUE);
+       free_irq(irq, cq);
+
 free_completion_irq:
        irq = pci_irq_vector(hdev->pdev, GAUDI2_IRQ_NUM_COMPLETION);
        free_irq(irq, cq);