File 0024-kernel-6.3.patch of Package x11-video-nvidiaG02
diff -ruN orig/nv-linux.h patch/nv-linux.h
--- orig/nv-linux.h 2023-04-25 18:13:45.486403893 +0000
+++ patch/nv-linux.h 2023-04-25 19:41:50.332617306 +0000
@@ -1958,4 +1958,17 @@
}
#endif /* !defined(NV_VMWARE) && defined(CONFIG_MTRR) */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 3, 0)
+// Rel. commit "mm: introduce vma->vm_flags wrapper functions" (Suren Baghdasaryan, 26 Jan 2023)
+static inline void vm_flags_set(struct vm_area_struct *vma, vm_flags_t flags)
+{
+ vma->vm_flags |= flags;
+}
+
+static inline void vm_flags_clear(struct vm_area_struct *vma, vm_flags_t flags)
+{
+ vma->vm_flags &= ~flags;
+}
+#endif
+
#endif /* _NV_LINUX_H_ */
diff -ruN orig/nv-mmap.c patch/nv-mmap.c
--- orig/nv-mmap.c 2023-04-25 18:13:54.771059672 +0000
+++ patch/nv-mmap.c 2023-04-25 20:03:43.072182643 +0000
@@ -271,8 +271,8 @@
#if defined(NVCPU_X86) || defined(NVCPU_X86_64)
pgprot_val(vma->vm_page_prot) &= ~_PAGE_RW;
#endif
- vma->vm_flags &= ~VM_WRITE;
- vma->vm_flags &= ~VM_MAYWRITE;
+ vm_flags_clear(vma, VM_WRITE);
+ vm_flags_clear(vma, VM_MAYWRITE);
}
if (IS_REG_OFFSET(nv, NV_VMA_OFFSET(vma), NV_VMA_SIZE(vma)))
@@ -292,7 +292,7 @@
goto done;
}
- vma->vm_flags |= VM_IO;
+ vm_flags_set(vma, VM_IO);
}
else if (IS_FB_OFFSET(nv, NV_VMA_OFFSET(vma), NV_VMA_SIZE(vma)))
{
@@ -326,7 +326,7 @@
goto done;
}
- vma->vm_flags |= VM_IO;
+ vm_flags_set(vma, VM_IO);
}
#if defined(NVCPU_X86) || defined(NVCPU_X86_64)
else if (IS_AGP_OFFSET(nv, NV_VMA_OFFSET(vma), NV_VMA_SIZE(vma)))
@@ -377,7 +377,7 @@
NV_PRINT_AT(NV_DBG_MEMINFO, at);
nv_vm_list_page_count(&at->page_table[i], pages);
- vma->vm_flags |= VM_IO;
+ vm_flags_set(vma, VM_IO);
}
#endif
else
@@ -464,8 +464,8 @@
NV_PRINT_AT(NV_DBG_MEMINFO, at);
nv_vm_list_page_count(&at->page_table[i], pages);
- vma->vm_flags |= (VM_IO | VM_LOCKED | VM_RESERVED);
- vma->vm_flags |= (VM_DONTEXPAND | VM_DONTDUMP);
+ vm_flags_set(vma, VM_IO | VM_LOCKED | VM_RESERVED);
+ vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP);
}
NV_VMA_FILE(vma) = file;