--- NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/nvidia-uvm/uvm8_gpu.c~ 2022-04-20 19:57:58.000000000 +0200 +++ NVIDIA-Linux-x86_64-390.151-no-compat32/kernel/nvidia-uvm/uvm8_gpu.c 2022-05-26 11:20:33.644914149 +0200 @@ -2214,7 +2214,11 @@ NV_STATUS uvm_gpu_map_cpu_pages(uvm_gpu_t *gpu, struct page *page, size_t size, NvU64 *dma_addr_out) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0) NvU64 dma_addr = pci_map_page(gpu->pci_dev, page, 0, size, PCI_DMA_BIDIRECTIONAL); +#else + NvU64 dma_addr = dma_map_page(&gpu->pci_dev->dev, page, 0, size, DMA_BIDIRECTIONAL); +#endif UVM_ASSERT(PAGE_ALIGNED(size)); @@ -2222,7 +2226,11 @@ return NV_ERR_OPERATING_SYSTEM; if (dma_addr < gpu->dma_addressable_start || dma_addr + size - 1 > gpu->dma_addressable_limit) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0) pci_unmap_page(gpu->pci_dev, dma_addr, size, PCI_DMA_BIDIRECTIONAL); +#else + dma_unmap_page(&gpu->pci_dev->dev, dma_addr, size, DMA_BIDIRECTIONAL); +#endif UVM_ERR_PRINT_RL("PCI mapped range [0x%llx, 0x%llx) not in the addressable range [0x%llx, 0x%llx), GPU %s\n", dma_addr, dma_addr + (NvU64)size, @@ -2256,7 +2264,11 @@ if (gpu->npu_dev) dma_address = nv_expand_nvlink_addr(dma_address); dma_address += gpu->dma_addressable_start; +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0) pci_unmap_page(gpu->pci_dev, dma_address, size, PCI_DMA_BIDIRECTIONAL); +#else + dma_unmap_page(&gpu->pci_dev->dev, dma_address, size, DMA_BIDIRECTIONAL); +#endif atomic64_sub(size, &gpu->mapped_cpu_pages_size); }