From: Jan Rękorajski Date: Sat, 29 Dec 2018 01:00:47 +0000 (+0900) Subject: - fix building kernel modules with kernel 4.4.169 X-Git-Tag: auto/th/xorg-driver-video-nvidia-legacy-390xx-390.87-3 X-Git-Url: http://git.pld-linux.org/?p=packages%2Fxorg-driver-video-nvidia-legacy-390xx.git;a=commitdiff_plain;h=79e8e8f - fix building kernel modules with kernel 4.4.169 - rel 3 --- diff --git a/kernel-4.4.169.patch b/kernel-4.4.169.patch new file mode 100644 index 0000000..48bf520 --- /dev/null +++ b/kernel-4.4.169.patch @@ -0,0 +1,69 @@ +--- NVIDIA-Linux-x86_64-390.87-no-compat32/kernel/conftest.sh~ 2018-08-22 06:47:57.000000000 +0900 ++++ NVIDIA-Linux-x86_64-390.87-no-compat32/kernel/conftest.sh 2018-12-29 09:33:30.537541114 +0900 +@@ -2725,6 +2725,32 @@ + return + fi + ++ # Conftest #3: Check if get_user_pages has gup_flags instead of write and force parameters. ++ # Return if available. ++ # Fall through to default case if absent. ++ ++ echo "$CONFTEST_PREAMBLE ++ #include ++ long get_user_pages(struct task_struct *tsk, ++ struct mm_struct *mm, ++ unsigned long start, ++ unsigned long nr_pages, ++ unsigned int gup_flags, ++ struct page **pages, ++ struct vm_area_struct **vmas) { ++ return 0; ++ }" > conftest$$.c ++ ++ $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1 ++ rm -f conftest$$.c ++ ++ if [ -f conftest$$.o ]; then ++ echo "#undef NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" ++ echo "#define NV_GET_USER_PAGES_HAS_TASK_STRUCT" | append_conftest "functions" ++ rm -f conftest$$.o ++ return ++ fi ++ + echo "#define NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" + echo "#define NV_GET_USER_PAGES_HAS_TASK_STRUCT" | append_conftest "functions" + +--- NVIDIA-Linux-x86_64-390.87-no-compat32/kernel/common/inc/nv-mm.h~ 2018-08-22 09:55:23.000000000 +0900 ++++ NVIDIA-Linux-x86_64-390.87-no-compat32/kernel/common/inc/nv-mm.h 2018-12-29 09:30:55.797962776 +0900 +@@ -40,8 +40,31 @@ + */ + + #if defined(NV_GET_USER_PAGES_HAS_TASK_STRUCT) ++ #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS) + #define NV_GET_USER_PAGES(start, nr_pages, write, force, pages, vmas) \ + get_user_pages(current, current->mm, start, nr_pages, write, force, pages, vmas) ++ #else ++ #include ++ #include ++ #include ++ ++ static inline long NV_GET_USER_PAGES(unsigned long start, ++ unsigned long nr_pages, ++ int write, ++ int force, ++ struct page **pages, ++ struct vm_area_struct **vmas) ++ { ++ unsigned int flags = 0; ++ ++ if (write) ++ flags |= FOLL_WRITE; ++ if (force) ++ flags |= FOLL_FORCE; ++ ++ return get_user_pages(current, current->mm, start, nr_pages, flags, pages, vmas); ++ } ++ #endif + #else + #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS) + #define NV_GET_USER_PAGES get_user_pages diff --git a/xorg-driver-video-nvidia-legacy-390xx.spec b/xorg-driver-video-nvidia-legacy-390xx.spec index 0ad972b..e963f5e 100644 --- a/xorg-driver-video-nvidia-legacy-390xx.spec +++ b/xorg-driver-video-nvidia-legacy-390xx.spec @@ -33,7 +33,7 @@ exit 1 %define no_install_post_check_so 1 -%define rel 2 +%define rel 3 %define pname xorg-driver-video-nvidia-legacy-390xx Summary: Linux Drivers for nVidia GeForce/Quadro Chips Summary(hu.UTF-8): Linux meghajtók nVidia GeForce/Quadro chipekhez @@ -56,6 +56,7 @@ Source5: 10-nvidia-modules.conf Patch0: X11-driver-nvidia-GL.patch Patch1: X11-driver-nvidia-desktop.patch Patch2: kernel-4.19.patch +Patch3: kernel-4.4.169.patch URL: http://www.nvidia.com/object/unix.html BuildRequires: rpmbuild(macros) >= 1.701 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}} @@ -270,6 +271,7 @@ rm -rf NVIDIA-Linux-x86*-%{version}* %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 echo 'EXTRA_CFLAGS += -Wno-pointer-arith -Wno-sign-compare -Wno-unused' >> kernel/Makefile.kbuild %build