From 85d476e6b3a4a1cb63ff838bd1f1aee13af8dbde Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Sat, 27 May 2023 21:53:57 +0200 Subject: [PATCH] split uvm part of kernel 6.3 fix into separate patch uvm available only for 64-bit --- kernel-6.3-uvm.patch | 12 ++++++++++++ kernel-6.3.patch | 12 ------------ xorg-driver-video-nvidia-legacy-390xx.spec | 4 ++++ 3 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 kernel-6.3-uvm.patch diff --git a/kernel-6.3-uvm.patch b/kernel-6.3-uvm.patch new file mode 100644 index 0000000..7156c9a --- /dev/null +++ b/kernel-6.3-uvm.patch @@ -0,0 +1,12 @@ +diff --color -ur NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia-uvm/uvm8.c NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia-uvm/uvm8.c +--- NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia-uvm/uvm8.c 2022-10-12 11:30:28.000000000 +0200 ++++ NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia-uvm/uvm8.c 2023-05-27 21:31:28.027398157 +0200 +@@ -658,7 +658,7 @@ + // Using VM_DONTCOPY would be nice, but madvise(MADV_DOFORK) can reset that + // so we have to handle vm_open on fork anyway. We could disable MADV_DOFORK + // with VM_IO, but that causes other mapping issues. +- vma->vm_flags |= VM_MIXEDMAP | VM_DONTEXPAND; ++ nv_vm_flags_set(vma, VM_MIXEDMAP | VM_DONTEXPAND | VM_DONTCOPY); + + vma->vm_ops = &uvm_vm_ops_managed; + diff --git a/kernel-6.3.patch b/kernel-6.3.patch index bf67b5e..2a6892b 100644 --- a/kernel-6.3.patch +++ b/kernel-6.3.patch @@ -116,15 +116,3 @@ diff --color -ur NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia-drm/ #include -diff --color -ur NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia-uvm/uvm8.c NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia-uvm/uvm8.c ---- NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia-uvm/uvm8.c 2022-10-12 11:30:28.000000000 +0200 -+++ NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia-uvm/uvm8.c 2023-05-27 21:31:28.027398157 +0200 -@@ -658,7 +658,7 @@ - // Using VM_DONTCOPY would be nice, but madvise(MADV_DOFORK) can reset that - // so we have to handle vm_open on fork anyway. We could disable MADV_DOFORK - // with VM_IO, but that causes other mapping issues. -- vma->vm_flags |= VM_MIXEDMAP | VM_DONTEXPAND; -+ nv_vm_flags_set(vma, VM_MIXEDMAP | VM_DONTEXPAND | VM_DONTCOPY); - - vma->vm_ops = &uvm_vm_ops_managed; - diff --git a/xorg-driver-video-nvidia-legacy-390xx.spec b/xorg-driver-video-nvidia-legacy-390xx.spec index 9f9d08e..94b9b82 100644 --- a/xorg-driver-video-nvidia-legacy-390xx.spec +++ b/xorg-driver-video-nvidia-legacy-390xx.spec @@ -53,6 +53,7 @@ Patch0: X11-driver-nvidia-GL.patch Patch1: X11-driver-nvidia-desktop.patch Patch2: kenrel-6.2.patch Patch3: kernel-6.3.patch +Patch4: kernel-6.3-uvm.patch URL: https://www.nvidia.com/en-us/drivers/unix/ BuildRequires: rpm-build >= 4.6 BuildRequires: rpmbuild(macros) >= 1.752 @@ -315,6 +316,9 @@ rm -rf NVIDIA-Linux-x86*-%{version}* %patch1 -p1 %patch2 -p1 %patch3 -p1 +%ifarch %{x8664} +%patch4 -p1 +%endif echo 'EXTRA_CFLAGS += -Wno-pointer-arith -Wno-sign-compare -Wno-unused' >> kernel/Makefile.kbuild %build -- 2.44.0