In Linux kernel v5.18, "pci-dma-compat.h" wrapper file is removed [1].

Some APIs in that wrapper file were used by igb_uio kernel module and
kernel module build fails after mentioned commit.

Fixed build for v5.18 by replacing APIs in igb_uio.

Replaced APIs are available in Linux v4.4 (minimum Linux kernel version
supported by DPDK), so no Linux version check is needed.

[1]
Commit 7968778914e5 ("PCI: Remove the deprecated "pci-dma-compat.h" API")

Bugzilla ID: 1142

Signed-off-by: Ferruh Yigit <ferruh.yi...@amd.com>
---
Cc: Daxue Gao <daxuex....@intel.com>

Cc: Christian Ehrhardt <christian.ehrha...@canonical.com>
This also needs to be backported to v19.11 LTS
---
 linux/igb_uio/igb_uio.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/linux/igb_uio/igb_uio.c b/linux/igb_uio/igb_uio.c
index 33e0e0286b69..0045e0fb737a 100644
--- a/linux/igb_uio/igb_uio.c
+++ b/linux/igb_uio/igb_uio.c
@@ -512,18 +512,12 @@ igbuio_pci_probe(struct pci_dev *dev, const struct 
pci_device_id *id)
                goto fail_release_iomem;
 
        /* set 64-bit DMA mask */
-       err = pci_set_dma_mask(dev,  DMA_BIT_MASK(64));
+       err = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64));
        if (err != 0) {
                dev_err(&dev->dev, "Cannot set DMA mask\n");
                goto fail_release_iomem;
        }
 
-       err = pci_set_consistent_dma_mask(dev, DMA_BIT_MASK(64));
-       if (err != 0) {
-               dev_err(&dev->dev, "Cannot set consistent DMA mask\n");
-               goto fail_release_iomem;
-       }
-
        /* fill uio infos */
        udev->info.name = "igb_uio";
        udev->info.version = "0.1";
-- 
2.25.1

Reply via email to