--- NVIDIA-Linux-x86_64-390.138-no-compat32/kernel/common/inc/nv-linux.h~ 2020-05-14 14:29:21.000000000 +0200 +++ NVIDIA-Linux-x86_64-390.138-no-compat32/kernel/common/inc/nv-linux.h 2020-08-16 21:04:10.709809366 +0200 @@ -531,7 +531,11 @@ static inline void *nv_vmalloc(unsigned long size) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) void *ptr = __vmalloc(size, GFP_KERNEL, PAGE_KERNEL); +#else + void *ptr = __vmalloc(size, GFP_KERNEL); +#endif if (ptr) NV_MEMDBG_ADD(ptr, size); return ptr; --- NVIDIA-Linux-x86_64-390.138-no-compat32/kernel/nvidia/os-mlock.c~ 2020-05-14 14:29:21.000000000 +0200 +++ NVIDIA-Linux-x86_64-390.138-no-compat32/kernel/nvidia/os-mlock.c 2020-08-16 21:07:49.051608021 +0200 @@ -44,7 +44,11 @@ return rmStatus; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) down_read(&mm->mmap_sem); +#else + mmap_read_lock(mm); +#endif vma = find_vma(mm, (NvUPtr)address); if ((vma == NULL) || ((vma->vm_flags & (VM_IO | VM_PFNMAP)) == 0)) @@ -77,7 +81,11 @@ } done: +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) up_read(&mm->mmap_sem); +#else + mmap_read_unlock(mm); +#endif return rmStatus; #else @@ -115,10 +123,18 @@ return rmStatus; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) down_read(&mm->mmap_sem); +#else + mmap_read_lock(mm); +#endif ret = NV_GET_USER_PAGES((unsigned long)address, page_count, write, force, user_pages, NULL); +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) up_read(&mm->mmap_sem); +#else + mmap_read_unlock(mm); +#endif pinned = ret; if (ret < 0) --- NVIDIA-Linux-x86_64-390.138-no-compat32/kernel/nvidia-drm/nvidia-drm-linux.c~ 2020-05-14 14:29:25.000000000 +0200 +++ NVIDIA-Linux-x86_64-390.138-no-compat32/kernel/nvidia-drm/nvidia-drm-linux.c 2020-08-16 21:10:16.179212969 +0200 @@ -32,6 +32,7 @@ #if defined(NV_DRM_AVAILABLE) #include +#include #if defined(NV_DRM_DRMP_H_PRESENT) #include @@ -103,11 +103,19 @@ return -ENOMEM; } +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) down_read(&mm->mmap_sem); +#else + mmap_read_lock(mm); +#endif pages_pinned = NV_GET_USER_PAGES(address, pages_count, write, force, user_pages, NULL); +#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0) up_read(&mm->mmap_sem); +#else + mmap_read_unlock(mm); +#endif if (pages_pinned < 0 || (unsigned)pages_pinned < pages_count) { goto failed;