]> git.pld-linux.org Git - packages/xorg-driver-video-nvidia-legacy-390xx.git/blob - kernel-6.3.patch
split uvm part of kernel 6.3 fix into separate patch
[packages/xorg-driver-video-nvidia-legacy-390xx.git] / kernel-6.3.patch
1 diff --color -ur NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/common/inc/nv-mm.h NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/common/inc/nv-mm.h
2 --- NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/common/inc/nv-mm.h      2022-10-12 11:30:26.000000000 +0200
3 +++ NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/common/inc/nv-mm.h   2023-05-27 21:34:28.310317019 +0200
4 @@ -282,4 +282,22 @@
5  #endif
6  }
7  
8 +static inline void nv_vm_flags_set(struct vm_area_struct *vma, vm_flags_t flags)
9 +{
10 +#if defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS)
11 +    vm_flags_set(vma, flags);
12 +#else
13 +    vma->vm_flags |= flags;
14 +#endif
15 +}
16 +
17 +static inline void nv_vm_flags_clear(struct vm_area_struct *vma, vm_flags_t flags)
18 +{
19 +#if defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS)
20 +    vm_flags_clear(vma, flags);
21 +#else
22 +    vma->vm_flags &= ~flags;
23 +#endif
24 +}
25 +
26  #endif // __NV_MM_H__
27 diff --color -ur NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/conftest.sh NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/conftest.sh
28 --- NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/conftest.sh     2022-10-11 18:00:50.000000000 +0200
29 +++ NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/conftest.sh  2023-05-27 21:33:14.502405255 +0200
30 @@ -4646,6 +4646,25 @@
31  
32              compile_check_conftest "$CODE" "NV_ACPI_VIDEO_BACKLIGHT_USE_NATIVE" "" "functions"
33          ;;
34 +
35 +        vm_area_struct_has_const_vm_flags)
36 +            #
37 +            # Determine if the 'vm_area_struct' structure has
38 +            # const 'vm_flags'.
39 +            #
40 +            # A union of '__vm_flags' and 'const vm_flags' was added 
41 +            # by commit bc292ab00f6c ("mm: introduce vma->vm_flags
42 +            # wrapper functions") in mm-stable branch (2023-02-09)
43 +            # of the akpm/mm maintainer tree.
44 +            #
45 +            CODE="
46 +            #include <linux/mm_types.h>
47 +            int conftest_vm_area_struct_has_const_vm_flags(void) {
48 +                return offsetof(struct vm_area_struct, __vm_flags);
49 +            }"
50 +
51 +            compile_check_conftest "$CODE" "NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS" "" "types"
52 +        ;;
53      esac
54  }
55  
56 diff --color -ur NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia/nvidia.Kbuild NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia/nvidia.Kbuild
57 --- NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia/nvidia.Kbuild    2022-10-12 11:29:57.000000000 +0200
58 +++ NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia/nvidia.Kbuild 2023-05-27 21:33:16.565772516 +0200
59 @@ -168,6 +168,7 @@
60  NV_CONFTEST_FUNCTION_COMPILE_TESTS += unsafe_follow_pfn
61  NV_CONFTEST_FUNCTION_COMPILE_TESTS += acpi_bus_get_device
62  NV_CONFTEST_FUNCTION_COMPILE_TESTS += acpi_video_backlight_use_native
63 +NV_CONFTEST_FUNCTION_COMPILE_TESTS += vm_area_struct_has_const_vm_flags
64  
65  NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_gpl_of_node_to_nid
66  NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_swiotlb_map_sg_attrs
67 diff --color -ur NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia/nv-mmap.c NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia/nv-mmap.c
68 --- NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia/nv-mmap.c        2022-10-12 11:30:26.000000000 +0200
69 +++ NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia/nv-mmap.c     2023-05-27 21:33:09.022315399 +0200
70 @@ -447,7 +447,7 @@
71              addr  = mmap_start;
72              
73              // Needed for the linux kernel for mapping compound pages
74 -            vma->vm_flags |= VM_MIXEDMAP;
75 +            nv_vm_flags_set(vma, VM_MIXEDMAP | VM_PFNMAP | VM_DONTEXPAND);
76  
77              for (j = 0; j < pages; j++)
78              {
79 @@ -471,7 +471,7 @@
80              }
81          }
82  
83 -        vma->vm_flags |= VM_IO;
84 +        nv_vm_flags_set(vma, VM_IO | VM_PFNMAP | VM_DONTEXPAND);
85      }
86      else
87      {
88 @@ -533,15 +533,15 @@
89  
90          NV_PRINT_AT(NV_DBG_MEMINFO, at);
91  
92 -        vma->vm_flags |= (VM_IO | VM_LOCKED | VM_RESERVED);
93 -        vma->vm_flags |= (VM_DONTEXPAND | VM_DONTDUMP);
94 +        nv_vm_flags_set(vma, VM_IO | VM_LOCKED | VM_RESERVED);
95 +        nv_vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP);
96      }
97  
98      if ((prot & NV_PROTECT_WRITEABLE) == 0)
99      {
100          vma->vm_page_prot = NV_PGPROT_READ_ONLY(vma->vm_page_prot);
101 -        vma->vm_flags &= ~VM_WRITE;
102 -        vma->vm_flags &= ~VM_MAYWRITE;
103 +        nv_vm_flags_clear(vma, VM_WRITE);
104 +        nv_vm_flags_clear(vma, VM_MAYWRITE);
105      }
106  
107      vma->vm_ops = &nv_vm_ops;
108 diff --color -ur NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia-drm/nvidia-drm-fb.c NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia-drm/nvidia-drm-fb.c
109 --- NVIDIA-Linux-x86_64-390.157-no-compat32.orig/kernel/nvidia-drm/nvidia-drm-fb.c      2022-10-12 11:30:31.000000000 +0200
110 +++ NVIDIA-Linux-x86_64-390.157-no-compat32/kernel/nvidia-drm/nvidia-drm-fb.c   2023-05-27 21:29:24.045671732 +0200
111 @@ -29,6 +29,7 @@
112  #include "nvidia-drm-fb.h"
113  #include "nvidia-drm-utils.h"
114  #include "nvidia-drm-gem.h"
115 +#include "nvidia-drm-helper.h"
116  
117  #include <drm/drm_crtc_helper.h>
118  
This page took 0.671581 seconds and 3 git commands to generate.