[[PATCH] ] linux/igb_uio: fix build with Linux 5.18
Checks
Commit Message
Since commit 7968778914 (PCI: Remove the deprecated "pci-dma-compat.h" API)
in 5.18, pci_set_dma_mask() and pci_set_consistent_dma_mask() no longer exist
switch those api to dma_set_mask_and_coherent.
---
linux/igb_uio/igb_uio.c | 8 ++++++++
1 file changed, 8 insertions(+)
Comments
30/01/2023 08:27, jiangheng (G):
> Since commit 7968778914 (PCI: Remove the deprecated "pci-dma-compat.h" API)
> in 5.18, pci_set_dma_mask() and pci_set_consistent_dma_mask() no longer exist
> switch those api to dma_set_mask_and_coherent.
> ---
> linux/igb_uio/igb_uio.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
The patch from Ferruh looks simpler:
https://patches.dpdk.org/project/dpdk/patch/20221216115732.3552650-1-ferruh.yigit@amd.com/
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
> err = pci_set_dma_mask(dev, DMA_BIT_MASK(64));
> +#else
> + err = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64));
> +#endif
[...]
> +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
> err = pci_set_consistent_dma_mask(dev, DMA_BIT_MASK(64));
> +#else
> + err = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64));
> +#endif
@@ -512,13 +512,21 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
goto fail_release_iomem;
/* set 64-bit DMA mask */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
err = pci_set_dma_mask(dev, DMA_BIT_MASK(64));
+#else
+ err = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64));
+#endif
if (err != 0) {
dev_err(&dev->dev, "Cannot set DMA mask\n");
goto fail_release_iomem;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0)
err = pci_set_consistent_dma_mask(dev, DMA_BIT_MASK(64));
+#else
+ err = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(64));
+#endif
if (err != 0) {
dev_err(&dev->dev, "Cannot set consistent DMA mask\n");
goto fail_release_iomem;