[packages/xorg-driver-video-nvidia-legacy-390xx] - fix build on ix86
baggins
baggins at pld-linux.org
Thu Sep 7 15:46:39 CEST 2023
commit 9c1ff707530f373981a58d93e51496becf57e774
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Thu Sep 7 15:02:57 2023 +0200
- fix build on ix86
...andle-get_user_pages-vmas-argument-remova.patch | 42 ----------------------
...et_user_pages-vmas-argument-removal-x8664.patch | 42 ++++++++++++++++++++++
xorg-driver-video-nvidia-legacy-390xx.spec | 4 +++
3 files changed, 46 insertions(+), 42 deletions(-)
---
diff --git a/xorg-driver-video-nvidia-legacy-390xx.spec b/xorg-driver-video-nvidia-legacy-390xx.spec
index 44e506b..eb00f7b 100644
--- a/xorg-driver-video-nvidia-legacy-390xx.spec
+++ b/xorg-driver-video-nvidia-legacy-390xx.spec
@@ -57,6 +57,7 @@ Patch4: kernel-6.3-uvm.patch
Patch5: kernel-6.4.patch
Patch6: kernel-6.5-garbage-collect-all-references-to-get_user.patch
Patch7: kernel-6.5-handle-get_user_pages-vmas-argument-remova.patch
+Patch8: kernel-6.5-handle-get_user_pages-vmas-argument-removal-x8664.patch
URL: https://www.nvidia.com/en-us/drivers/unix/
BuildRequires: rpm-build >= 4.6
BuildRequires: rpmbuild(macros) >= 1.752
@@ -325,6 +326,9 @@ rm -rf NVIDIA-Linux-x86*-%{version}*
%patch5 -p1
%patch6 -p1
%patch7 -p1
+%ifarch %{x8664}
+%patch8 -p1
+%endif
echo 'EXTRA_CFLAGS += -Wno-pointer-arith -Wno-sign-compare -Wno-unused' >> kernel/Makefile.kbuild
%build
diff --git a/kernel-6.5-handle-get_user_pages-vmas-argument-remova.patch b/kernel-6.5-handle-get_user_pages-vmas-argument-remova.patch
index 9e997d8..4da3e0b 100644
--- a/kernel-6.5-handle-get_user_pages-vmas-argument-remova.patch
+++ b/kernel-6.5-handle-get_user_pages-vmas-argument-remova.patch
@@ -153,48 +153,6 @@ index be405f29..dd4a2a6d 100644
nv_mmap_read_unlock(mm);
if (pages_pinned < 0 || (unsigned)pages_pinned < pages_count) {
-diff --git a/kernel/nvidia-uvm/uvm8_tools.c b/kernel/nvidia-uvm/uvm8_tools.c
-index 1dc7c97d..ea521945 100644
---- a/kernel/nvidia-uvm/uvm8_tools.c
-+++ b/kernel/nvidia-uvm/uvm8_tools.c
-@@ -251,13 +251,37 @@ static NV_STATUS map_user_pages(NvU64 user_va, NvU64 size, void **addr, struct p
- }
-
- nv_mmap_read_lock(current->mm);
-+#if defined(NV_GET_USER_PAGES_DROPPED_VMA)
-+ ret = NV_GET_USER_PAGES(user_va, num_pages, 1, 0, *pages);
-+#else
- ret = NV_GET_USER_PAGES(user_va, num_pages, 1, 0, *pages, vmas);
-+#endif
- nv_mmap_read_unlock(current->mm);
- if (ret != num_pages) {
- status = NV_ERR_INVALID_ARGUMENT;
- goto fail;
- }
-
-+#if defined(NV_GET_USER_PAGES_DROPPED_VMA)
-+ struct vm_area_struct *vma;
-+ unsigned long start;
-+
-+ nv_mmap_read_lock(current->mm);
-+ start = user_va;
-+ for (i = 0; i < num_pages; i++) {
-+ vma = find_vma(current->mm, start);
-+ if (!vma) {
-+ nv_mmap_read_unlock(current->mm);
-+ status = NV_ERR_INVALID_ARGUMENT;
-+ goto fail;
-+ }
-+
-+ vmas[i] = vma;
-+ start = (start + PAGE_SIZE) & PAGE_MASK;
-+ }
-+ nv_mmap_read_unlock(current->mm);
-+#endif
-+
- for (i = 0; i < num_pages; i++) {
- if (page_count((*pages)[i]) > MAX_PAGE_COUNT || uvm_file_is_nvidia_uvm(vmas[i]->vm_file)) {
- status = NV_ERR_INVALID_ARGUMENT;
diff --git a/kernel/nvidia/os-mlock.c b/kernel/nvidia/os-mlock.c
index f88daed4..ad5cb9a1 100644
--- a/kernel/nvidia/os-mlock.c
diff --git a/kernel-6.5-handle-get_user_pages-vmas-argument-removal-x8664.patch b/kernel-6.5-handle-get_user_pages-vmas-argument-removal-x8664.patch
new file mode 100644
index 0000000..d54b24c
--- /dev/null
+++ b/kernel-6.5-handle-get_user_pages-vmas-argument-removal-x8664.patch
@@ -0,0 +1,42 @@
+diff --git a/kernel/nvidia-uvm/uvm8_tools.c b/kernel/nvidia-uvm/uvm8_tools.c
+index 1dc7c97d..ea521945 100644
+--- a/kernel/nvidia-uvm/uvm8_tools.c
++++ b/kernel/nvidia-uvm/uvm8_tools.c
+@@ -251,13 +251,37 @@ static NV_STATUS map_user_pages(NvU64 user_va, NvU64 size, void **addr, struct p
+ }
+
+ nv_mmap_read_lock(current->mm);
++#if defined(NV_GET_USER_PAGES_DROPPED_VMA)
++ ret = NV_GET_USER_PAGES(user_va, num_pages, 1, 0, *pages);
++#else
+ ret = NV_GET_USER_PAGES(user_va, num_pages, 1, 0, *pages, vmas);
++#endif
+ nv_mmap_read_unlock(current->mm);
+ if (ret != num_pages) {
+ status = NV_ERR_INVALID_ARGUMENT;
+ goto fail;
+ }
+
++#if defined(NV_GET_USER_PAGES_DROPPED_VMA)
++ struct vm_area_struct *vma;
++ unsigned long start;
++
++ nv_mmap_read_lock(current->mm);
++ start = user_va;
++ for (i = 0; i < num_pages; i++) {
++ vma = find_vma(current->mm, start);
++ if (!vma) {
++ nv_mmap_read_unlock(current->mm);
++ status = NV_ERR_INVALID_ARGUMENT;
++ goto fail;
++ }
++
++ vmas[i] = vma;
++ start = (start + PAGE_SIZE) & PAGE_MASK;
++ }
++ nv_mmap_read_unlock(current->mm);
++#endif
++
+ for (i = 0; i < num_pages; i++) {
+ if (page_count((*pages)[i]) > MAX_PAGE_COUNT || uvm_file_is_nvidia_uvm(vmas[i]->vm_file)) {
+ status = NV_ERR_INVALID_ARGUMENT;
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/xorg-driver-video-nvidia-legacy-390xx.git/commitdiff/9c1ff707530f373981a58d93e51496becf57e774
More information about the pld-cvs-commit
mailing list