The branch main has been updated by imp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=36b5c440028b44b22cfc0596125f575ca513656f

commit 36b5c440028b44b22cfc0596125f575ca513656f
Author:     Warner Losh <i...@freebsd.org>
AuthorDate: 2022-04-05 05:06:21 +0000
Commit:     Warner Losh <i...@freebsd.org>
CommitDate: 2022-04-05 05:06:21 +0000

    linuxkpi: Move pci_alloc_irq_vectors to .c file
    
    pci_alloc_irq_vectors encodes the size of struct msix_entry
    into its code. Move from .h to .c to move this knowledge from
    client modules to linuxkpi module.
    
    Sponsored by:           Netflix
    Reviewed by:            hselasky
    Differential Revision:  https://reviews.freebsd.org/D34774
---
 sys/compat/linuxkpi/common/include/linux/pci.h | 38 ++------------------------
 sys/compat/linuxkpi/common/src/linux_pci.c     | 36 ++++++++++++++++++++++++
 2 files changed, 38 insertions(+), 36 deletions(-)

diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h 
b/sys/compat/linuxkpi/common/include/linux/pci.h
index 76c6df02bf19..f71bee511d75 100644
--- a/sys/compat/linuxkpi/common/include/linux/pci.h
+++ b/sys/compat/linuxkpi/common/include/linux/pci.h
@@ -317,6 +317,8 @@ struct pcim_iomap_devres {
 };
 
 int pci_request_region(struct pci_dev *pdev, int bar, const char *res_name);
+int pci_alloc_irq_vectors(struct pci_dev *pdev, int minv, int maxv,
+    unsigned int flags);
 
 /* Internal helper function(s). */
 struct pci_dev *lkpinew_pci_dev(device_t);
@@ -860,42 +862,6 @@ pci_enable_msi(struct pci_dev *pdev)
        return (0);
 }
 
-static inline int
-pci_alloc_irq_vectors(struct pci_dev *pdev, int minv, int maxv,
-    unsigned int flags)
-{
-       int error;
-
-       if (flags & PCI_IRQ_MSIX) {
-               struct msix_entry *entries;
-               int i;
-
-               entries = kcalloc(maxv, sizeof(*entries), GFP_KERNEL);
-               if (entries == NULL) {
-                       error = -ENOMEM;
-                       goto out;
-               }
-               for (i = 0; i < maxv; ++i)
-                       entries[i].entry = i;
-               error = pci_enable_msix(pdev, entries, maxv);
-out:
-               kfree(entries);
-               if (error == 0 && pdev->msix_enabled)
-                       return (pdev->dev.irq_end - pdev->dev.irq_start);
-       }
-       if (flags & PCI_IRQ_MSI) {
-               error = pci_enable_msi(pdev);
-               if (error == 0 && pdev->msi_enabled)
-                       return (pdev->dev.irq_end - pdev->dev.irq_start);
-       }
-       if (flags & PCI_IRQ_LEGACY) {
-               if (pdev->irq)
-                       return (1);
-       }
-
-       return (-EINVAL);
-}
-
 static inline int
 pci_channel_offline(struct pci_dev *pdev)
 {
diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c 
b/sys/compat/linuxkpi/common/src/linux_pci.c
index 43a8cf96d0e3..8b64cbae0e6a 100644
--- a/sys/compat/linuxkpi/common/src/linux_pci.c
+++ b/sys/compat/linuxkpi/common/src/linux_pci.c
@@ -883,6 +883,42 @@ linux_pci_unregister_drm_driver(struct pci_driver *pdrv)
        bus_topo_unlock();
 }
 
+int
+pci_alloc_irq_vectors(struct pci_dev *pdev, int minv, int maxv,
+    unsigned int flags)
+{
+       int error;
+
+       if (flags & PCI_IRQ_MSIX) {
+               struct msix_entry *entries;
+               int i;
+
+               entries = kcalloc(maxv, sizeof(*entries), GFP_KERNEL);
+               if (entries == NULL) {
+                       error = -ENOMEM;
+                       goto out;
+               }
+               for (i = 0; i < maxv; ++i)
+                       entries[i].entry = i;
+               error = pci_enable_msix(pdev, entries, maxv);
+out:
+               kfree(entries);
+               if (error == 0 && pdev->msix_enabled)
+                       return (pdev->dev.irq_end - pdev->dev.irq_start);
+       }
+       if (flags & PCI_IRQ_MSI) {
+               error = pci_enable_msi(pdev);
+               if (error == 0 && pdev->msi_enabled)
+                       return (pdev->dev.irq_end - pdev->dev.irq_start);
+       }
+       if (flags & PCI_IRQ_LEGACY) {
+               if (pdev->irq)
+                       return (1);
+       }
+
+       return (-EINVAL);
+}
+
 CTASSERT(sizeof(dma_addr_t) <= sizeof(uint64_t));
 
 struct linux_dma_obj {

Reply via email to