1diff -u -r a/src/shared/linux_osl.c b/src/shared/linux_osl.c
2--- a/src/shared/linux_osl.c 2022-05-24 20:51:15.662604980 +0000
3+++ b/src/shared/linux_osl.c 2022-05-24 21:13:38.264472425 +0000
4@@ -599,6 +599,8 @@
5 va = kmalloc(size, GFP_ATOMIC | __GFP_ZERO);
6 if (va)
7 *pap = (ulong)__virt_to_phys(va);
8+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
9+ va = dma_alloc_coherent(&((struct pci_dev *)osh->pdev)->dev, size, (dma_addr_t*)pap, GFP_ATOMIC);
10 #else
11 va = pci_alloc_consistent(osh->pdev, size, (dma_addr_t*)pap);
12 #endif
13@@ -612,6 +614,8 @@
14
15 #ifdef __ARM_ARCH_7A__
16 kfree(va);
17+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
18+ dma_free_coherent(&((struct pci_dev *)osh->pdev)->dev, size, va, (dma_addr_t)pa);
19 #else
20 pci_free_consistent(osh->pdev, size, va, (dma_addr_t)pa);
21 #endif
22@@ -623,7 +627,11 @@
23 int dir;
24
25 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
26+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
27+ dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE;
28+#else
29 dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE;
30+#endif
31
32 #if defined(__ARM_ARCH_7A__) && defined(BCMDMASGLISTOSL)
33 if (dmah != NULL) {
34@@ -641,7 +649,11 @@
35 ASSERT(totsegs + nsegs <= MAX_DMA_SEGS);
36 sg->page_link = 0;
37 sg_set_buf(sg, PKTDATA(osh, skb), PKTLEN(osh, skb));
38+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
39+ dma_map_single(&((struct pci_dev *)osh->pdev)->dev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir);
40+#else
41 pci_map_single(osh->pdev, PKTDATA(osh, skb), PKTLEN(osh, skb), dir);
42+#endif
43 }
44 totsegs += nsegs;
45 totlen += PKTLEN(osh, skb);
46@@ -656,7 +668,11 @@
47 }
48 #endif
49
50+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
51+ return (dma_map_single(&((struct pci_dev *)osh->pdev)->dev, va, size, dir));
52+#else
53 return (pci_map_single(osh->pdev, va, size, dir));
54+#endif
55 }
56
57 void BCMFASTPATH
58@@ -665,8 +681,13 @@
59 int dir;
60
61 ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC)));
62+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
63+ dir = (direction == DMA_TX)? DMA_TO_DEVICE: DMA_FROM_DEVICE;
64+ dma_unmap_single(&((struct pci_dev *)osh->pdev)->dev, (uint32)pa, size, dir);
65+#else
66 dir = (direction == DMA_TX)? PCI_DMA_TODEVICE: PCI_DMA_FROMDEVICE;
67 pci_unmap_single(osh->pdev, (uint32)pa, size, dir);
68+#endif
69 }
70
71 #if defined(BCMDBG_ASSERT)