[[PATCH] ] linux/igb_uio: fix build with Linux 5.18

Message ID 8b4953ef939d433f8fe19353e9ed3aa7@huawei.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [[PATCH] ] linux/igb_uio: fix build with Linux 5.18 |

Checks

Context Check Description
ci/Intel-compilation warning apply issues
ci/loongarch-compilation warning apply patch failure
ci/iol-testing warning apply patch failure

Commit Message

jiangheng (G) Jan. 30, 2023, 7:27 a.m. UTC
  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

Thomas Monjalon Feb. 5, 2023, 5:34 p.m. UTC | #1
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
  

Patch

diff --git a/linux/igb_uio/igb_uio.c b/linux/igb_uio/igb_uio.c
index 33e0e02..3672314 100644
--- a/linux/igb_uio/igb_uio.c
+++ b/linux/igb_uio/igb_uio.c
@@ -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;