misc: bcm-vk: Specify the minimum number of IRQ vecs
authorBreno Leitao <leitao@debian.org>
Fri, 12 Aug 2022 09:40:11 +0000 (02:40 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 1 Sep 2022 14:29:29 +0000 (16:29 +0200)
During bcm_vk_probe(), pci_alloc_irq_vectors() is called passing the
number of IRQ vectors as 1, but, later, check how many IRQ vectors it
got, and fails if it is smaller than VK_MSIX_IRQ_MIN_REQ.

The most appropriated way to do it is setting the 'min_vecs' param as
VK_MSIX_IRQ_MIN_REQ, instead of one. pci_alloc_irq_vectors() should
know the requirements when called.

The test was done by just loading this module on a machine with a
Valkyrie offload engine hardware.

Acked-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://lore.kernel.org/r/20220812094011.4064729-1-leitao@debian.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/bcm-vk/bcm_vk_dev.c

index a16b99b..bedab17 100644 (file)
@@ -1339,7 +1339,7 @@ static int bcm_vk_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        pci_set_drvdata(pdev, vk);
 
        irq = pci_alloc_irq_vectors(pdev,
-                                   1,
+                                   VK_MSIX_IRQ_MIN_REQ,
                                    VK_MSIX_IRQ_MAX,
                                    PCI_IRQ_MSI | PCI_IRQ_MSIX);