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

jiangheng (G) jiangheng14 at huawei.com
Mon Jan 30 08:27:01 CET 2023


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(+)

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;
-- 
2.27.0



More information about the dev mailing list