Version in base suite: 450.248.02-1~deb11u1 Base version: nvidia-graphics-drivers-tesla-450_450.248.02-1~deb11u1 Target version: nvidia-graphics-drivers-tesla-450_450.248.02-4~deb11u1 Base file: /srv/ftp-master.debian.org/ftp/pool/non-free/n/nvidia-graphics-drivers-tesla-450/nvidia-graphics-drivers-tesla-450_450.248.02-1~deb11u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/non-free/n/nvidia-graphics-drivers-tesla-450/nvidia-graphics-drivers-tesla-450_450.248.02-4~deb11u1.dsc README.source | 19 changelog | 84 ++ control | 149 --- control.in | 290 +++---- control.md5sum | 8 gbp.conf | 2 module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el-from-470.223.02.patch | 59 + module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el.patch | 68 - module/debian/patches/0027-backport-get_user_pages-changes-from-520.56.06.patch | 379 +++++++++ module/debian/patches/0028-backport-get_user_pages-changes-from-525.53.patch | 222 +++++ module/debian/patches/0029-backport-get_user_pages-changes-from-525.53-uvm-part.patch | 93 ++ module/debian/patches/0030-backport-get_user_pages-changes-from-535.86.05.patch | 392 ++++++++++ module/debian/patches/0031-backport-asm-page.h-changes-from-470.223.02.patch | 69 + module/debian/patches/0032-backport-drm_gem_prime_handle_to_fd-changes-from-470.patch | 54 + module/debian/patches/0033-refuse-to-load-legacy-module-if-IBT-is-enabled.patch | 63 + module/debian/patches/conftest-verbose.patch | 6 module/debian/patches/series.in | 9 nvidia-alternative.postinst.in | 2 nvidia-alternative.preinst.in | 7 nvidia-driver.NEWS | 13 nvidia-kernel-dkms.NEWS | 13 nvidia-kernel-source.NEWS | 13 nvidia-options.conf.in | 6 nvidia.NEWS | 13 rules | 7 rules.defs | 5 tests/control | 8 tests/control.in | 8 xserver-xorg-video-nvidia.NEWS | 13 29 files changed, 1690 insertions(+), 384 deletions(-) diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/README.source nvidia-graphics-drivers-tesla-450-450.248.02/debian/README.source --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/README.source 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/README.source 2024-02-13 00:55:48.000000000 +0000 @@ -29,12 +29,13 @@ Tesla 410 EoL Tesla 418 (LTSB) 03/2022 EoL Tesla 440 11/2020 EoL - Tesla 450 (LTSB) 07/2023 + Tesla 450 (LTSB) 07/2023 EoL Tesla 460 (PB) 01/2022 EoL Tesla 470 (LTSB) 07/2024 Tesla 510 (PB) 01/2023 EoL Tesla 515 (PB) 05/2023 EoL Tesla 525 (PB) 12/2023 + Tesla 535 (LTSB) 06/2026 The branch structure in the GIT repository @@ -60,9 +61,10 @@ 418-bullseye EoL (bullseye) 450, 418-tesla 418-tesla EoL (bullseye) 450-tesla, tesla-418/main tesla-418/main EoL bullseye,sid tesla-450/main - 450 (bullseye) 460, 450-tesla - 450-tesla (bullseye) 460-tesla, tesla-450/main - tesla-450/main bullseye,sid tesla-460/main + 450 EoL (bullseye) 460, 450-tesla + 450-tesla EoL (bullseye) 460-tesla, tesla-450/main + tesla-450/main EoL (bullseye),(sid) tesla-460/main, tesla-450/transition-470 + tesla-450/transition-470 bullseye,sid tesla-460/transition-470 460 EoL (bullseye) 470, 460-tesla 460-tesla EoL (bullseye) 470-tesla, tesla-460/main tesla-460/main EoL (bullseye),(sid) tesla-470/main, tesla-460/transition-470 @@ -70,9 +72,12 @@ 470 bullseye 525, 470-tesla 470-tesla (bullseye) 525-tesla, tesla-470/main tesla-470/main bullseye,bookworm,sid tesla/525 - 525 bookworm,sid YYY, 525-tesla - 525-tesla (bookworm) ZZZ-tesla, tesla/525 - tesla/525 bookworm,sid tesla/ZZZ + 525 bookworm,sid 535, 525-tesla + 525-tesla (bookworm) 535-tesla, tesla/525 + tesla/525 bookworm,sid tesla/535 + 535 bookworm,sid YYY, 535-tesla + 535-tesla (bookworm) ZZZ-tesla, tesla/535 + tesla/535 bookworm,sid tesla/ZZZ main sid YYY tesla/main sid YYY experimental ZZZ, (main) diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/changelog nvidia-graphics-drivers-tesla-450-450.248.02/debian/changelog --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/changelog 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/changelog 2024-02-13 00:55:48.000000000 +0000 @@ -1,3 +1,41 @@ +nvidia-graphics-drivers-tesla-450 (450.248.02-4~deb11u1) bullseye; urgency=medium + + * Rebuild for bullseye. + + -- Andreas Beckmann Tue, 13 Feb 2024 01:55:48 +0100 + +nvidia-graphics-drivers-tesla-450 (450.248.02-4) unstable; urgency=medium + + * The Tesla 450 driver series has been declared as End-of-Life by + NVIDIA. No further updates fixing security issues, critical bugs, or + adding support for new Xorg or Linux releases will be issued. + https://docs.nvidia.com/datacenter/tesla/drivers/ + + * Turn metapackages into transitional packages to aid switching to + nvidia-graphics-drivers-tesla-470. (Closes: #1055140) + * Provide less virtual packages. + * Remove the Tesla 450 driver from the nvidia alternative. + + -- Andreas Beckmann Wed, 22 Nov 2023 14:13:01 +0100 + +nvidia-graphics-drivers-tesla-450 (450.248.02-3) unstable; urgency=medium + + * Revert backport of pin_user_pages changes. + * Backport drm_gem_prime_handle_to_fd changes from 470.223.02 to fix kernel + module build for Linux 6.6. + * Refuse to load module if IBT is enabled. (Closes: #1052069) + * Switch suggestion from obsolete vulkan-utils to vulkan-tools + (525.125.06-3). (Closes: #1055503) + + -- Andreas Beckmann Tue, 14 Nov 2023 09:51:10 +0100 + +nvidia-graphics-drivers-tesla-450 (450.248.02-2) unstable; urgency=medium + + * Backport get_user_pages and pin_user_pages changes from 520.56.06, + 525.53 and 535.86.05 to fix kernel module build for Linux 6.5. + + -- Andreas Beckmann Mon, 14 Aug 2023 23:37:02 +0200 + nvidia-graphics-drivers-tesla-450 (450.248.02-1~deb11u1) bullseye; urgency=medium * Rebuild for bullseye. @@ -1104,12 +1142,25 @@ -- Andreas Beckmann Sat, 25 May 2019 13:49:09 +0200 -nvidia-graphics-drivers-tesla-418 (418.226.00-12) UNRELEASED; urgency=medium +nvidia-graphics-drivers-tesla-418 (418.226.00-13) unstable; urgency=medium + + * Revert backport of pin_user_pages changes. + * Backport drm_gem_prime_handle_to_fd changes from 470.223.02 to fix kernel + module build for Linux 6.6. + * Refuse to load module if IBT is enabled. (Closes: #1052069) + * Switch suggestion from obsolete vulkan-utils to vulkan-tools + (525.125.06-3). (Closes: #1055503) + -- Andreas Beckmann Mon, 13 Nov 2023 13:27:57 +0100 + +nvidia-graphics-drivers-tesla-418 (418.226.00-12) unstable; urgency=medium + + * Backport get_user_pages and pin_user_pages changes from 520.56.06, + 525.53 and 535.86.05 to fix kernel module build for Linux 6.5. * Backport drm_driver_has_dumb_destroy changes from 525.116.03 to fix kernel module build for Linux 6.4. - -- Andreas Beckmann Fri, 16 Jun 2023 17:43:27 +0200 + -- Andreas Beckmann Mon, 14 Aug 2023 13:47:48 +0200 nvidia-graphics-drivers-tesla-418 (418.226.00-11) unstable; urgency=medium @@ -2060,12 +2111,28 @@ -- Andreas Beckmann Sun, 22 Apr 2018 13:59:45 +0200 +nvidia-graphics-drivers (390.157-6) UNRELEASED; urgency=medium + + * Revert backport of pin_user_pages changes. + * Backport drm_gem_prime_handle_to_fd changes from 470.223.02 to fix kernel + module build for Linux 6.6. + * Refuse to load module if IBT is enabled. + + -- Andreas Beckmann Mon, 13 Nov 2023 10:01:19 +0100 + +nvidia-graphics-drivers (390.157-5) UNRELEASED; urgency=medium + + * Backport get_user_pages and pin_user_pages changes from 418.30, 520.56.06, + 525.53 and 535.86.05 to fix kernel module build for Linux 6.5. + + -- Andreas Beckmann Mon, 14 Aug 2023 02:18:45 +0200 + nvidia-graphics-drivers (390.157-4) UNRELEASED; urgency=medium * Backport drm_driver_has_dumb_destroy changes from 525.116.03 to fix kernel module build for Linux 6.4. - -- Andreas Beckmann Fri, 16 Jun 2023 17:29:02 +0200 + -- Andreas Beckmann Wed, 02 Aug 2023 17:08:58 +0200 nvidia-graphics-drivers (390.157-3) UNRELEASED; urgency=medium @@ -4865,6 +4932,15 @@ nvidia-graphics-drivers (340.108-2) UNRELEASED; urgency=medium + * Revert backport of pin_user_pages changes. + * Backport drm/drm_device.h check needed by drm_device_has_pdev backport. + * Backport drm_gem_prime_handle_to_fd changes from 470.223.02 to fix kernel + module build for Linux 6.6. + * Refuse to load module if IBT is enabled. + + * Backport get_user_pages and pin_user_pages changes from 418.30, 520.56.06, + 525.53 and 535.86.05 to fix kernel module build for Linux 6.5. + * Backport vm_area_struct_has_const_vm_flags changes from 470.199.02 to fix kernel module build for Linux 6.3. @@ -7443,7 +7519,7 @@ certain OpenGL applications such as Amnesia: The Dark Descent on GeForce 6 and 7 GPUs. * New upstream release 295 series. - * CVE-2012-4225 (Closes: 684781) + * CVE-2012-4225 (Closes: #684781) - Implemented hotfix for a privilege escalation vulnerability reported on August 1, 2012. For more details, see: https://nvidia.custhelp.com/app/answers/detail/a_id/3140 diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/control nvidia-graphics-drivers-tesla-450-450.248.02/debian/control --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/control 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/control 2024-02-13 00:55:48.000000000 +0000 @@ -8,7 +8,7 @@ Andreas Beckmann , Luca Boccassi , Vcs-Browser: https://salsa.debian.org/nvidia-team/nvidia-graphics-drivers -Vcs-Git: https://salsa.debian.org/nvidia-team/nvidia-graphics-drivers.git -b tesla-450/main +Vcs-Git: https://salsa.debian.org/nvidia-team/nvidia-graphics-drivers.git -b tesla-450/transition-470 Build-Depends: debhelper-compat (= 13), dh-sequence-dkms, @@ -31,27 +31,9 @@ Package: nvidia-tesla-450-driver Section: non-free/x11 Architecture: amd64 arm64 ppc64el -Pre-Depends: - nvidia-installer-cleanup, - ${nvidia:legacy-check}, Depends: - ${nvidia}-driver-libs (= ${binary:Version}), - ${nvidia}-driver-bin (= ${binary:Version}), - xserver-xorg-video-${nvidia} (= ${binary:Version}), - ${nvidia}-vdpau-driver (= ${binary:Version}), - ${nvidia}-alternative (= ${binary:Version}), - ${nvidia:kmod:binary}, - nvidia-support, + nvidia-tesla-470-driver, ${misc:Depends} -Recommends: - ${nvidia-settings}, - lib${nvidia}-cfg1 (= ${binary:Version}), - nvidia-persistenced, -Suggests: - ${nvidia:kmod:source}, -Provides: - nvidia-driver-any, - nvidia-glx-any, Description: NVIDIA metapackage${nvidia:VariantDesc} This metapackage depends on the NVIDIA binary driver and libraries that provide optimized hardware acceleration of @@ -109,7 +91,6 @@ nvidia-modprobe (>= ${nvidia:Version:major}), ${misc:Depends} Provides: - nvidia-kernel-support-any, ${nvidia-kernel}-support--v1, Description: NVIDIA binary kernel module support files${nvidia:VariantDesc} The NVIDIA binary driver provides optimized hardware acceleration of @@ -122,17 +103,9 @@ Section: non-free/kernel Architecture: amd64 arm64 ppc64el Multi-Arch: foreign -Pre-Depends: - nvidia-installer-cleanup, Depends: - ${nvidia-kernel}-support--v1, + nvidia-tesla-470-kernel-dkms, ${misc:Depends} -Recommends: - ${nvidia}-driver (>= ${nvidia:Version}) - | ${libcuda1} (>= ${nvidia:Version}), -Provides: - ${nvidia-kernel}-${nvidia:Version}, - nvidia-kernel-dkms-any (= ${nvidia:Version}), Description: NVIDIA binary kernel module DKMS source${nvidia:VariantDesc} This package builds the NVIDIA binary kernel modules needed by ${nvidia}-driver, using DKMS. @@ -157,14 +130,8 @@ Section: non-free/kernel Architecture: amd64 arm64 ppc64el Depends: - debhelper-compat (= ${nvidia:debhelper-compat}), - quilt, + nvidia-tesla-470-kernel-source, ${misc:Depends} -Recommends: - module-assistant, - ${nvidia-kernel}-support--v1, -Suggests: - ${nvidia}-driver (>= ${nvidia:Version}), Description: NVIDIA binary kernel module source${nvidia:VariantDesc} This package provides the source for the NVIDIA binary kernel modules needed by ${nvidia}-driver in a form suitable @@ -190,24 +157,10 @@ Package: xserver-xorg-video-nvidia-tesla-450 Section: non-free/x11 Architecture: amd64 arm64 ppc64el -Pre-Depends: - nvidia-installer-cleanup, - ${nvidia:legacy-check}, Depends: + xserver-xorg-video-nvidia-tesla-470, ${nvidia}-alternative (= ${binary:Version}), - nvidia-support, - ${nvidia:xorgDepends}, ${shlibs:Depends}, ${misc:Depends} -Recommends: - ${nvidia}-driver (>= ${nvidia:Version}), - ${nvidia}-vdpau-driver (>= ${nvidia:Version}), - ${nvidia:kmod:binary}, - ${nvidia-settings}, -Suggests: - ${nvidia:kmod:source}, -Provides: - xserver-xorg-video-nvidia-any, - ${nvidia:xorgProvides}, Description: NVIDIA binary Xorg driver${nvidia:VariantDesc} The NVIDIA binary driver provides optimized hardware acceleration of OpenGL/GLX/EGL/GLES applications via a direct-rendering X Server @@ -245,11 +198,9 @@ Pre-Depends: ${misc:Pre-Depends} Depends: + libnvidia-tesla-470-cfg1, ${nvidia}-alternative (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -Provides: - libnvidia-cfg.so.1 (= ${nvidia:Version}), - libnvidia-cfg1-any, Description: NVIDIA binary OpenGL/GLX configuration library${nvidia:VariantDesc} The NVIDIA binary driver provides optimized hardware acceleration of OpenGL/GLX/EGL/GLES applications via a direct-rendering X Server @@ -261,20 +212,8 @@ Architecture: i386 amd64 arm64 ppc64el Multi-Arch: same Depends: - libgl1-${nvidia}-glvnd-glx (= ${binary:Version}), - ${nvidia}-egl-icd (= ${binary:Version}), + nvidia-tesla-470-driver-libs, ${misc:Depends} -Recommends: - ${nvidia}-driver-libs:i386 (= ${binary:Version}) [amd64], - libopengl0 | libopengl0-glvnd-nvidia, - libglx-${nvidia-}0 (= ${binary:Version}), - libgles-${nvidia-}1 (= ${binary:Version}), - libgles-${nvidia-}2 (= ${binary:Version}), - lib${nvidia}-cfg1 (= ${binary:Version}) [${nvidia:archlist:driver}], - lib${nvidia}-encode1 (= ${binary:Version}), - ${nvidia}-vulkan-icd (= ${binary:Version}), -Provides: - nvidia-driver-libs-any, Conflicts: libglvnd0-nvidia, libopengl0-glvnd-nvidia, @@ -303,8 +242,6 @@ ${nvidia}-alternative (= ${binary:Version}), libglx0 | libglx0-glvnd-nvidia, ${shlibs:Depends}, ${misc:Depends} -Provides: - libglx-vendor, Description: NVIDIA binary GLX library${nvidia:VariantDesc} GLX ("OpenGL Extension to the X Window System") provides an interface between OpenGL and the X Window System as well as extensions to OpenGL itself. @@ -323,8 +260,6 @@ libgl1 (>= 0.2.999) | libgl1-glvnd-nvidia-glx, libglx-${nvidia-}0 (= ${binary:Version}), ${misc:Depends} -Provides: - libgl1-nvidia-glx-any, Description: NVIDIA binary OpenGL/GLX library (GLVND variant)${nvidia:VariantDesc} The NVIDIA binary driver provides optimized hardware acceleration of OpenGL/GLX/EGL/GLES applications via a direct-rendering X Server @@ -457,11 +392,6 @@ libegl1 (>= 0.2.999) | libegl1-glvnd-nvidia, libegl-${nvidia-}0 (= ${binary:Version}), ${misc:Depends} -Enhances: - libegl1, -Provides: - libegl-vendor, - egl-icd, Description: NVIDIA EGL installable client driver (ICD) EGL provides a platform-agnostic mechanism for creating rendering surfaces for use with other graphics libraries, such as OpenGL|ES. @@ -485,10 +415,6 @@ ${nvidia:kmod:binary}, Suggests: ${nvidia:kmod:source}, -Enhances: - libvdpau1, -Provides: - vdpau-driver, Description: Video Decode and Presentation API for Unix - NVIDIA driver${nvidia:VariantDescShort} These libraries provide the Video Decode and Presentation API for Unix. They provide accelerated video playback (incl. H.264) for the supported @@ -514,12 +440,7 @@ lib${nvidia}-cbl (= ${binary:Version}) [!i386 !ppc64el], lib${nvidia}-rtcore (= ${binary:Version}) [!i386 !ppc64el], Suggests: - vulkan-utils, -Enhances: - libvulkan1, -Provides: - vulkan-icd, - nvidia-vulkan-icd-any, + vulkan-tools, Conflicts: ${nvidia}-nonglvnd-vulkan-icd, Description: NVIDIA Vulkan installable client driver (ICD)${nvidia:VariantDesc} @@ -592,13 +513,10 @@ Section: non-free/utils Architecture: amd64 arm64 ppc64el Depends: + nvidia-tesla-470-smi, ${nvidia}-alternative (= ${binary:Version}), lib${nvidia}-ml1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -Recommends: - ${nvidia:kmod:binary}, -Suggests: - ${nvidia:kmod:source}, Description: NVIDIA System Management Interface${nvidia:VariantDesc} The NVIDIA Management Library (NVML) provides a monitoring and management API. The application "nvidia-smi" is the NVIDIA System Management Interface (NVSMI) @@ -615,8 +533,6 @@ Depends: ${nvidia}-alternative (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -Provides: - libnvidia-ml.so.1 (= ${nvidia:Version}), Homepage: https://developer.nvidia.com/nvidia-management-library-NVML Description: NVIDIA Management Library (NVML) runtime library${nvidia:VariantDesc} The NVIDIA Management Library (NVML) provides a monitoring and management API. @@ -631,52 +547,11 @@ ${nvidia:legacy-check}, ${misc:Pre-Depends} Depends: + libnvidia-tesla-470-cuda1, nvidia-support, ${nvidia}-alternative (= ${binary:Version}), lib${nvidia}-ptxjitcompiler1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -Recommends: - ${nvidia:kmod:binary}, - ${nvidia}-smi [${nvidia:archlist:driver}], - lib${nvidia}-cfg1 (= ${binary:Version}) [${nvidia:archlist:driver}], - nvidia-persistenced [${nvidia:archlist:driver}], - ${libcuda1}:i386 (= ${binary:Version}) [amd64], -Suggests: - nvidia-cuda-mps [${nvidia:archlist:driver}], - ${nvidia:kmod:source}, -Provides: - libcuda.so.1 (= ${nvidia:Version}), - libcuda1-any, - libcuda-5.0-1, - libcuda-5.0-1-i386 [i386], - libcuda-5.5-1, - libcuda-5.5-1-i386 [i386], - libcuda-6.0-1, - libcuda-6.0-1-i386 [i386], - libcuda-6.5-1, - libcuda-6.5-1-i386 [i386], - libcuda-7.0-1, - libcuda-7.0-1-i386 [i386], - libcuda-7.5-1, - libcuda-7.5-1-i386 [i386], - libcuda-8.0-1, - libcuda-8.0-1-i386 [i386], - libcuda-9.0-1, - libcuda-9.0-1-i386 [i386], - libcuda-9.1-1, - libcuda-9.1-1-i386 [i386], - libcuda-9.2-1, - libcuda-9.2-1-i386 [i386], - libcuda-10.0-1, - libcuda-10.0-1-i386 [i386], - libcuda-10.1-1, - libcuda-10.1-1-i386 [i386], - libcuda-10.2-1, - libcuda-10.2-1-i386 [i386], - libcuda-11.0-1, - libcuda-11.0-1-i386 [i386], - libcuda-11.1-1, - libcuda-11.1-1-i386 [i386], Homepage: https://www.nvidia.com/CUDA Description: NVIDIA CUDA Driver Library${nvidia:VariantDesc} The Compute Unified Device Architecture (CUDA) enables NVIDIA @@ -860,10 +735,6 @@ ${libcuda1} (= ${binary:Version}), lib${nvidia}-compiler (= ${binary:Version}) [!arm64 !ppc64el], ${shlibs:Depends}, ${misc:Depends} -Enhances: - libopencl1, -Provides: - opencl-icd, Description: NVIDIA OpenCL installable client driver (ICD)${nvidia:VariantDesc} OpenCL (Open Computing Language) is a multivendor open standard for general-purpose parallel programming of heterogeneous systems that include diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/control.in nvidia-graphics-drivers-tesla-450-450.248.02/debian/control.in --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/control.in 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/control.in 2024-02-13 00:55:48.000000000 +0000 @@ -29,28 +29,29 @@ Package: ${nvidia}-driver Section: non-free/x11 Architecture: amd64 ${arch:arm64} ${arch:ppc64el} -Pre-Depends: - nvidia-installer-cleanup, - ${nvidia:legacy-check}, -Depends: - ${nvidia}-driver-libs (= ${binary:Version}), - ${nvidia}-driver-bin (= ${binary:Version}), - xserver-xorg-video-${nvidia} (= ${binary:Version}), - ${nvidia}-vdpau-driver (= ${binary:Version}), - ${nvidia}-alternative (= ${binary:Version}), - ${nvidia:kmod:binary}, - nvidia-support, +#Pre-Depends: +# nvidia-installer-cleanup, +# ${nvidia:legacy-check}, +Depends: + nvidia-tesla-470-driver, +# ${nvidia}-driver-libs (= ${binary:Version}), +# ${nvidia}-driver-bin (= ${binary:Version}), +# xserver-xorg-video-${nvidia} (= ${binary:Version}), +# ${nvidia}-vdpau-driver (= ${binary:Version}), +# ${nvidia}-alternative (= ${binary:Version}), +# ${nvidia:kmod:binary}, +# nvidia-support, ${misc:Depends} -Recommends: - ${nvidia-settings}, -# help nvidia-persistenced by pre-selecting the correct provider for libnvidia-cfg1-any - lib${nvidia}-cfg1 (= ${binary:Version}), - nvidia-persistenced, -Suggests: - ${nvidia:kmod:source}, -Provides: - nvidia-driver-any, - nvidia-glx-any, +#Recommends: +# ${nvidia-settings}, +## help nvidia-persistenced by pre-selecting the correct provider for libnvidia-cfg1-any +# lib${nvidia}-cfg1 (= ${binary:Version}), +# nvidia-persistenced, +#Suggests: +# ${nvidia:kmod:source}, +#Provides: +# nvidia-driver-any, +# nvidia-glx-any, Description: NVIDIA metapackage${nvidia:VariantDesc} This metapackage depends on the NVIDIA binary driver and libraries that provide optimized hardware acceleration of @@ -108,7 +109,7 @@ nvidia-modprobe (>= ${nvidia:Version:major}), ${misc:Depends} Provides: - nvidia-kernel-support-any, +# nvidia-kernel-support-any, ${nvidia-kernel}-support--v1, Description: NVIDIA binary kernel module support files${nvidia:VariantDesc} The NVIDIA binary driver provides optimized hardware acceleration of @@ -121,17 +122,18 @@ Section: non-free/kernel Architecture: amd64 ${arch:arm64} ${arch:ppc64el} Multi-Arch: foreign -Pre-Depends: - nvidia-installer-cleanup, +#Pre-Depends: +# nvidia-installer-cleanup, Depends: - ${nvidia-kernel}-support--v1, + nvidia-tesla-470-kernel-dkms, +# ${nvidia-kernel}-support--v1, ${misc:Depends} -Recommends: - ${nvidia}-driver (>= ${nvidia:Version}) - | ${libcuda1} (>= ${nvidia:Version}), -Provides: - ${nvidia-kernel}-${nvidia:Version}, - nvidia-kernel-dkms-any (= ${nvidia:Version}), +#Recommends: +# ${nvidia}-driver (>= ${nvidia:Version}) +# | ${libcuda1} (>= ${nvidia:Version}), +#Provides: +# ${nvidia-kernel}-${nvidia:Version}, +# nvidia-kernel-dkms-any (= ${nvidia:Version}), Description: NVIDIA binary kernel module DKMS source${nvidia:VariantDesc} This package builds the NVIDIA binary kernel modules needed by ${nvidia}-driver, using DKMS. @@ -156,14 +158,15 @@ Section: non-free/kernel Architecture: amd64 ${arch:arm64} ${arch:ppc64el} Depends: - debhelper-compat (= ${nvidia:debhelper-compat}), - quilt, + nvidia-tesla-470-kernel-source, +# debhelper-compat (= ${nvidia:debhelper-compat}), +# quilt, ${misc:Depends} -Recommends: - module-assistant, - ${nvidia-kernel}-support--v1, -Suggests: - ${nvidia}-driver (>= ${nvidia:Version}), +#Recommends: +# module-assistant, +# ${nvidia-kernel}-support--v1, +#Suggests: +# ${nvidia}-driver (>= ${nvidia:Version}), Description: NVIDIA binary kernel module source${nvidia:VariantDesc} This package provides the source for the NVIDIA binary kernel modules needed by ${nvidia}-driver in a form suitable @@ -189,24 +192,25 @@ Package: xserver-xorg-video-${nvidia} Section: non-free/x11 Architecture: amd64 ${arch:arm64} ${arch:ppc64el} -Pre-Depends: - nvidia-installer-cleanup, - ${nvidia:legacy-check}, +#Pre-Depends: +# nvidia-installer-cleanup, +# ${nvidia:legacy-check}, Depends: + xserver-xorg-video-nvidia-tesla-470, ${nvidia}-alternative (= ${binary:Version}), - nvidia-support, - ${nvidia:xorgDepends}, +# nvidia-support, +# ${nvidia:xorgDepends}, ${shlibs:Depends}, ${misc:Depends} -Recommends: - ${nvidia}-driver (>= ${nvidia:Version}), - ${nvidia}-vdpau-driver (>= ${nvidia:Version}), - ${nvidia:kmod:binary}, - ${nvidia-settings}, -Suggests: - ${nvidia:kmod:source}, -Provides: - xserver-xorg-video-nvidia-any, - ${nvidia:xorgProvides}, +#Recommends: +# ${nvidia}-driver (>= ${nvidia:Version}), +# ${nvidia}-vdpau-driver (>= ${nvidia:Version}), +# ${nvidia:kmod:binary}, +# ${nvidia-settings}, +#Suggests: +# ${nvidia:kmod:source}, +#Provides: +# xserver-xorg-video-nvidia-any, +# ${nvidia:xorgProvides}, Description: NVIDIA binary Xorg driver${nvidia:VariantDesc} The NVIDIA binary driver provides optimized hardware acceleration of OpenGL/GLX/EGL/GLES applications via a direct-rendering X Server @@ -260,11 +264,12 @@ Pre-Depends: ${misc:Pre-Depends} Depends: + libnvidia-tesla-470-cfg1, ${nvidia}-alternative (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -Provides: - libnvidia-cfg.so.1 (= ${nvidia:Version}), - libnvidia-cfg1-any, +#Provides: +# libnvidia-cfg.so.1 (= ${nvidia:Version}), +# libnvidia-cfg1-any, Description: NVIDIA binary OpenGL/GLX configuration library${nvidia:VariantDesc} The NVIDIA binary driver provides optimized hardware acceleration of OpenGL/GLX/EGL/GLES applications via a direct-rendering X Server @@ -276,20 +281,21 @@ Architecture: i386 amd64 ${arch:arm64} ${arch:ppc64el} Multi-Arch: same Depends: - libgl1-${nvidia}-glvnd-glx (= ${binary:Version}), - ${nvidia}-egl-icd (= ${binary:Version}), + nvidia-tesla-470-driver-libs, +# libgl1-${nvidia}-glvnd-glx (= ${binary:Version}), +# ${nvidia}-egl-icd (= ${binary:Version}), ${misc:Depends} -Recommends: - ${nvidia}-driver-libs:i386 (= ${binary:Version}) [amd64], - libopengl0 | libopengl0-glvnd-nvidia, - libglx-${nvidia-}0 (= ${binary:Version}), - libgles-${nvidia-}1 (= ${binary:Version}), - libgles-${nvidia-}2 (= ${binary:Version}), - lib${nvidia}-cfg1 (= ${binary:Version}) [${nvidia:archlist:driver}], - lib${nvidia}-encode1 (= ${binary:Version}), - ${nvidia}-vulkan-icd (= ${binary:Version}), -Provides: - nvidia-driver-libs-any, +#Recommends: +# ${nvidia}-driver-libs:i386 (= ${binary:Version}) [amd64], +# libopengl0 | libopengl0-glvnd-nvidia, +# libglx-${nvidia-}0 (= ${binary:Version}), +# libgles-${nvidia-}1 (= ${binary:Version}), +# libgles-${nvidia-}2 (= ${binary:Version}), +# lib${nvidia}-cfg1 (= ${binary:Version}) [${nvidia:archlist:driver}], +# lib${nvidia}-encode1 (= ${binary:Version}), +# ${nvidia}-vulkan-icd (= ${binary:Version}), +#Provides: +# nvidia-driver-libs-any, Conflicts: libglvnd0-nvidia, libopengl0-glvnd-nvidia, @@ -375,8 +381,8 @@ ${nvidia}-alternative (= ${binary:Version}), libglx0 | libglx0-glvnd-nvidia, ${shlibs:Depends}, ${misc:Depends} -Provides: - libglx-vendor, +#Provides: +# libglx-vendor, Description: NVIDIA binary GLX library${nvidia:VariantDesc} GLX ("OpenGL Extension to the X Window System") provides an interface between OpenGL and the X Window System as well as extensions to OpenGL itself. @@ -416,8 +422,8 @@ libgl1 (>= 0.2.999) | libgl1-glvnd-nvidia-glx, libglx-${nvidia-}0 (= ${binary:Version}), ${misc:Depends} -Provides: - libgl1-nvidia-glx-any, +#Provides: +# libgl1-nvidia-glx-any, Description: NVIDIA binary OpenGL/GLX library (GLVND variant)${nvidia:VariantDesc} The NVIDIA binary driver provides optimized hardware acceleration of OpenGL/GLX/EGL/GLES applications via a direct-rendering X Server @@ -645,11 +651,11 @@ libegl1 (>= 0.2.999) | libegl1-glvnd-nvidia, libegl-${nvidia-}0 (= ${binary:Version}), ${misc:Depends} -Enhances: - libegl1, -Provides: - libegl-vendor, - egl-icd, +#Enhances: +# libegl1, +#Provides: +# libegl-vendor, +# egl-icd, Description: NVIDIA EGL installable client driver (ICD) EGL provides a platform-agnostic mechanism for creating rendering surfaces for use with other graphics libraries, such as OpenGL|ES. @@ -673,10 +679,10 @@ ${nvidia:kmod:binary}, Suggests: ${nvidia:kmod:source}, -Enhances: - libvdpau1, -Provides: - vdpau-driver, +#Enhances: +# libvdpau1, +#Provides: +# vdpau-driver, Description: Video Decode and Presentation API for Unix - NVIDIA driver${nvidia:VariantDescShort} These libraries provide the Video Decode and Presentation API for Unix. They provide accelerated video playback (incl. H.264) for the supported @@ -723,12 +729,12 @@ lib${nvidia}-cbl (= ${binary:Version}) [!i386 !ppc64el], lib${nvidia}-rtcore (= ${binary:Version}) [!i386 !ppc64el], Suggests: - vulkan-utils, -Enhances: - libvulkan1, -Provides: - vulkan-icd, - nvidia-vulkan-icd-any, + vulkan-tools, +#Enhances: +# libvulkan1, +#Provides: +# vulkan-icd, +# nvidia-vulkan-icd-any, Conflicts: ${nvidia}-nonglvnd-vulkan-icd, Description: NVIDIA Vulkan installable client driver (ICD)${nvidia:VariantDesc} @@ -828,13 +834,14 @@ Section: non-free/utils Architecture: amd64 ${arch:arm64} ${arch:ppc64el} Depends: + nvidia-tesla-470-smi, ${nvidia}-alternative (= ${binary:Version}), lib${nvidia}-ml1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -Recommends: - ${nvidia:kmod:binary}, -Suggests: - ${nvidia:kmod:source}, +#Recommends: +# ${nvidia:kmod:binary}, +#Suggests: +# ${nvidia:kmod:source}, Description: NVIDIA System Management Interface${nvidia:VariantDesc} The NVIDIA Management Library (NVML) provides a monitoring and management API. The application "nvidia-smi" is the NVIDIA System Management Interface (NVSMI) @@ -851,8 +858,8 @@ Depends: ${nvidia}-alternative (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -Provides: - libnvidia-ml.so.1 (= ${nvidia:Version}), +#Provides: +# libnvidia-ml.so.1 (= ${nvidia:Version}), Homepage: https://developer.nvidia.com/nvidia-management-library-NVML Description: NVIDIA Management Library (NVML) runtime library${nvidia:VariantDesc} The NVIDIA Management Library (NVML) provides a monitoring and management API. @@ -884,53 +891,54 @@ ${nvidia:legacy-check}, ${misc:Pre-Depends} Depends: + libnvidia-tesla-470-cuda1, nvidia-support, ${nvidia}-alternative (= ${binary:Version}), lib${nvidia}-ptxjitcompiler1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -Recommends: - ${nvidia:kmod:binary}, - ${nvidia}-smi [${nvidia:archlist:driver}], -# help nvidia-persistenced by pre-selecting the correct provider for libnvidia-cfg1-any - lib${nvidia}-cfg1 (= ${binary:Version}) [${nvidia:archlist:driver}], - nvidia-persistenced [${nvidia:archlist:driver}], - ${libcuda1}:i386 (= ${binary:Version}) [amd64], -Suggests: - nvidia-cuda-mps [${nvidia:archlist:driver}], - ${nvidia:kmod:source}, -Provides: - libcuda.so.1 (= ${nvidia:Version}), - libcuda1-any, - libcuda-5.0-1, - libcuda-5.0-1-i386 [i386], - libcuda-5.5-1, - libcuda-5.5-1-i386 [i386], - libcuda-6.0-1, - libcuda-6.0-1-i386 [i386], - libcuda-6.5-1, - libcuda-6.5-1-i386 [i386], - libcuda-7.0-1, - libcuda-7.0-1-i386 [i386], - libcuda-7.5-1, - libcuda-7.5-1-i386 [i386], - libcuda-8.0-1, - libcuda-8.0-1-i386 [i386], - libcuda-9.0-1, - libcuda-9.0-1-i386 [i386], - libcuda-9.1-1, - libcuda-9.1-1-i386 [i386], - libcuda-9.2-1, - libcuda-9.2-1-i386 [i386], - libcuda-10.0-1, - libcuda-10.0-1-i386 [i386], - libcuda-10.1-1, - libcuda-10.1-1-i386 [i386], - libcuda-10.2-1, - libcuda-10.2-1-i386 [i386], - libcuda-11.0-1, - libcuda-11.0-1-i386 [i386], - libcuda-11.1-1, - libcuda-11.1-1-i386 [i386], +#Recommends: +# ${nvidia:kmod:binary}, +# ${nvidia}-smi [${nvidia:archlist:driver}], +## help nvidia-persistenced by pre-selecting the correct provider for libnvidia-cfg1-any +# lib${nvidia}-cfg1 (= ${binary:Version}) [${nvidia:archlist:driver}], +# nvidia-persistenced [${nvidia:archlist:driver}], +# ${libcuda1}:i386 (= ${binary:Version}) [amd64], +#Suggests: +# nvidia-cuda-mps [${nvidia:archlist:driver}], +# ${nvidia:kmod:source}, +#Provides: +# libcuda.so.1 (= ${nvidia:Version}), +# libcuda1-any, +# libcuda-5.0-1, +# libcuda-5.0-1-i386 [i386], +# libcuda-5.5-1, +# libcuda-5.5-1-i386 [i386], +# libcuda-6.0-1, +# libcuda-6.0-1-i386 [i386], +# libcuda-6.5-1, +# libcuda-6.5-1-i386 [i386], +# libcuda-7.0-1, +# libcuda-7.0-1-i386 [i386], +# libcuda-7.5-1, +# libcuda-7.5-1-i386 [i386], +# libcuda-8.0-1, +# libcuda-8.0-1-i386 [i386], +# libcuda-9.0-1, +# libcuda-9.0-1-i386 [i386], +# libcuda-9.1-1, +# libcuda-9.1-1-i386 [i386], +# libcuda-9.2-1, +# libcuda-9.2-1-i386 [i386], +# libcuda-10.0-1, +# libcuda-10.0-1-i386 [i386], +# libcuda-10.1-1, +# libcuda-10.1-1-i386 [i386], +# libcuda-10.2-1, +# libcuda-10.2-1-i386 [i386], +# libcuda-11.0-1, +# libcuda-11.0-1-i386 [i386], +# libcuda-11.1-1, +# libcuda-11.1-1-i386 [i386], Homepage: https://www.nvidia.com/CUDA Description: NVIDIA CUDA Driver Library${nvidia:VariantDesc} The Compute Unified Device Architecture (CUDA) enables NVIDIA @@ -1132,10 +1140,10 @@ ${libcuda1} (= ${binary:Version}), lib${nvidia}-compiler (= ${binary:Version}) [!arm64 !ppc64el], ${shlibs:Depends}, ${misc:Depends} -Enhances: - libopencl1, -Provides: - opencl-icd, +#Enhances: +# libopencl1, +#Provides: +# opencl-icd, Description: NVIDIA OpenCL installable client driver (ICD)${nvidia:VariantDesc} OpenCL (Open Computing Language) is a multivendor open standard for general-purpose parallel programming of heterogeneous systems that include diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/control.md5sum nvidia-graphics-drivers-tesla-450-450.248.02/debian/control.md5sum --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/control.md5sum 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/control.md5sum 2024-02-13 00:55:48.000000000 +0000 @@ -1,5 +1,5 @@ -890924e6ea5eb8b25eecb5962830dd35 debian/control -6abdae87c561590eed426f1294b444ed debian/control.in +edd714a8b2712c85d688a3f70d26a044 debian/control +51de5a739aeb353430227e3e8f0e1855 debian/control.in 8489c83cfe0171c9de6d052c01a6d19b debian/gen-control.pl -55764e43f1aeebd8c8e589a227cad550 debian/rules -ad1e27dd2789bdc3bd72b1a7efcd82e8 debian/rules.defs +163ba99eb526c5e983cb4ecda630b52b debian/rules +29027b2c3889b50dd8138d5e03ac9647 debian/rules.defs diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/gbp.conf nvidia-graphics-drivers-tesla-450-450.248.02/debian/gbp.conf --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/gbp.conf 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/gbp.conf 2024-02-13 00:55:48.000000000 +0000 @@ -1,5 +1,5 @@ [DEFAULT] -debian-branch = tesla-450/main +debian-branch = tesla-450/transition-470 [buildpackage] overlay = True diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el-from-470.223.02.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el-from-470.223.02.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el-from-470.223.02.patch 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el-from-470.223.02.patch 2024-02-13 00:55:48.000000000 +0000 @@ -0,0 +1,59 @@ +From 319d7ca867f04c2f2583f70f2e10500a7bdd4ca6 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Thu, 2 Nov 2023 15:57:00 +0100 +Subject: [PATCH] backport pci/dma changes for ppc64el from 470.223.02 + +--- + nvidia/nv.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/nvidia/nv.c b/nvidia/nv.c +index 9f0f6c4..96a8d37 100644 +--- a/nvidia/nv.c ++++ b/nvidia/nv.c +@@ -4451,19 +4451,19 @@ NvU64 NV_API_CALL nv_get_dma_start_address( + * as the starting address for all DMA mappings. + */ + saved_dma_mask = pci_dev->dma_mask; +- if (pci_set_dma_mask(pci_dev, DMA_BIT_MASK(64)) != 0) ++ if (dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(64)) != 0) + { + goto done; + } + +- dma_addr = pci_map_single(pci_dev, NULL, 1, DMA_BIDIRECTIONAL); +- if (pci_dma_mapping_error(pci_dev, dma_addr)) ++ dma_addr = dma_map_single(&pci_dev->dev, NULL, 1, DMA_BIDIRECTIONAL); ++ if (dma_mapping_error(&pci_dev->dev, dma_addr)) + { +- pci_set_dma_mask(pci_dev, saved_dma_mask); ++ dma_set_mask(&pci_dev->dev, saved_dma_mask); + goto done; + } + +- pci_unmap_single(pci_dev, dma_addr, 1, DMA_BIDIRECTIONAL); ++ dma_unmap_single(&pci_dev->dev, dma_addr, 1, DMA_BIDIRECTIONAL); + + /* + * From IBM: "For IODA2, native DMA bypass or KVM TCE-based implementation +@@ -4495,7 +4495,7 @@ NvU64 NV_API_CALL nv_get_dma_start_address( + */ + nv_printf(NV_DBG_WARNINGS, + "NVRM: DMA window limited by platform\n"); +- pci_set_dma_mask(pci_dev, saved_dma_mask); ++ dma_set_mask(&pci_dev->dev, saved_dma_mask); + goto done; + } + else if ((dma_addr & saved_dma_mask) != 0) +@@ -4514,7 +4514,7 @@ NvU64 NV_API_CALL nv_get_dma_start_address( + */ + nv_printf(NV_DBG_WARNINGS, + "NVRM: DMA window limited by memory size\n"); +- pci_set_dma_mask(pci_dev, saved_dma_mask); ++ dma_set_mask(&pci_dev->dev, saved_dma_mask); + goto done; + } + } +-- +2.20.1 + diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el.patch 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0010-backport-pci-dma-changes-for-ppc64el.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -From ee6c5536967cdb46b7d3b5bae8ca7f0048d429b7 Mon Sep 17 00:00:00 2001 -From: Andreas Beckmann -Date: Mon, 20 Jun 2022 10:14:54 +0200 -Subject: [PATCH] backport pci/dma changes for ppc64el - ---- - nvidia/nv.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/nvidia/nv.c b/nvidia/nv.c -index 9f0f6c4..8ac465e 100644 ---- a/nvidia/nv.c -+++ b/nvidia/nv.c -@@ -4400,7 +4400,7 @@ NvU64 NV_API_CALL nv_get_dma_start_address( - * Otherwise, the DMA start address only needs to be set once, and it - * won't change afterward. Just return the cached value if asked again, - * to avoid the kernel printing redundant messages to the kernel -- * log when we call pci_set_dma_mask(). -+ * log when we call dma_set_mask(). - */ - nvl = NV_GET_NVL_FROM_NV_STATE(nv); - if ((nv_tce_bypass_mode == NV_TCE_BYPASS_MODE_DISABLE) || -@@ -4451,19 +4451,19 @@ NvU64 NV_API_CALL nv_get_dma_start_address( - * as the starting address for all DMA mappings. - */ - saved_dma_mask = pci_dev->dma_mask; -- if (pci_set_dma_mask(pci_dev, DMA_BIT_MASK(64)) != 0) -+ if (dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(64)) != 0) - { - goto done; - } - -- dma_addr = pci_map_single(pci_dev, NULL, 1, DMA_BIDIRECTIONAL); -- if (pci_dma_mapping_error(pci_dev, dma_addr)) -+ dma_addr = dma_map_single(&pci_dev->dev, NULL, 1, DMA_BIDIRECTIONAL); -+ if (dma_mapping_error(&pci_dev->dev, dma_addr)) - { -- pci_set_dma_mask(pci_dev, saved_dma_mask); -+ dma_set_mask(&pci_dev->dev, saved_dma_mask); - goto done; - } - -- pci_unmap_single(pci_dev, dma_addr, 1, DMA_BIDIRECTIONAL); -+ dma_unmap_single(&pci_dev->dev, dma_addr, 1, DMA_BIDIRECTIONAL); - - /* - * From IBM: "For IODA2, native DMA bypass or KVM TCE-based implementation -@@ -4495,7 +4495,7 @@ NvU64 NV_API_CALL nv_get_dma_start_address( - */ - nv_printf(NV_DBG_WARNINGS, - "NVRM: DMA window limited by platform\n"); -- pci_set_dma_mask(pci_dev, saved_dma_mask); -+ dma_set_mask(&pci_dev->dev, saved_dma_mask); - goto done; - } - else if ((dma_addr & saved_dma_mask) != 0) -@@ -4514,7 +4514,7 @@ NvU64 NV_API_CALL nv_get_dma_start_address( - */ - nv_printf(NV_DBG_WARNINGS, - "NVRM: DMA window limited by memory size\n"); -- pci_set_dma_mask(pci_dev, saved_dma_mask); -+ dma_set_mask(&pci_dev->dev, saved_dma_mask); - goto done; - } - } --- -2.20.1 - diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0027-backport-get_user_pages-changes-from-520.56.06.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0027-backport-get_user_pages-changes-from-520.56.06.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0027-backport-get_user_pages-changes-from-520.56.06.patch 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0027-backport-get_user_pages-changes-from-520.56.06.patch 2024-02-13 00:55:48.000000000 +0000 @@ -0,0 +1,379 @@ +From c21cd6ad23096d52648cd94d11bb310be2d466bb Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Sun, 6 Aug 2023 18:45:02 +0200 +Subject: [PATCH 1/4] backport get_user_pages changes from 520.56.06 + +--- + common/inc/nv-mm.h | 101 +++++++++++++-------------------- + conftest.sh | 136 +++++++++++++++++++++++++++++++++++---------- + 2 files changed, 145 insertions(+), 92 deletions(-) + +diff --git a/common/inc/nv-mm.h b/common/inc/nv-mm.h +index 46d09ca..a93079b 100644 +--- a/common/inc/nv-mm.h ++++ b/common/inc/nv-mm.h +@@ -47,55 +47,37 @@ typedef int vm_fault_t; + * + */ + +-#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 +- +- 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 ++#if defined(NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE) ++ #define NV_GET_USER_PAGES get_user_pages ++#elif defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE) ++ #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 +- #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS) +- #define NV_GET_USER_PAGES get_user_pages ++ #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; ++ ++ #if defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS) ++ return get_user_pages(current, current->mm, start, nr_pages, flags, ++ pages, vmas); + #else +- #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(start, nr_pages, flags, pages, vmas); +- } ++ // remaining defination(NV_GET_USER_PAGES_HAS_ARGS_FLAGS) ++ return get_user_pages(start, nr_pages, flags, pages, vmas); + #endif ++ } + #endif + + /* +@@ -131,7 +113,7 @@ typedef int vm_fault_t; + */ + + #if defined(NV_GET_USER_PAGES_REMOTE_PRESENT) +- #if defined(NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS) ++ #if defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE) + #define NV_GET_USER_PAGES_REMOTE get_user_pages_remote + #else + static inline long NV_GET_USER_PAGES_REMOTE(struct task_struct *tsk, +@@ -150,26 +132,21 @@ typedef int vm_fault_t; + if (force) + flags |= FOLL_FORCE; + +- #if defined(NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG) +- #if defined (NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG) +- return get_user_pages_remote(tsk, mm, start, nr_pages, flags, +- pages, vmas, NULL); +- #else +- return get_user_pages_remote(mm, start, nr_pages, flags, +- pages, vmas, NULL); +- #endif +- ++ #if defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS) ++ return get_user_pages_remote(tsk, mm, start, nr_pages, flags, ++ pages, vmas); ++ #elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED) ++ return get_user_pages_remote(tsk, mm, start, nr_pages, flags, ++ pages, vmas, NULL); + #else +- +- return get_user_pages_remote(tsk, mm, start, nr_pages, flags, +- pages, vmas); +- ++ // remaining defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED) ++ return get_user_pages_remote(mm, start, nr_pages, flags, ++ pages, vmas, NULL); + #endif +- + } + #endif + #else +- #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS) ++ #if defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE) + #define NV_GET_USER_PAGES_REMOTE get_user_pages + #else + #include +diff --git a/conftest.sh b/conftest.sh +index 2a65e39..ad4dd50 100755 +--- a/conftest.sh ++++ b/conftest.sh +@@ -2472,10 +2472,41 @@ compile_test() { + # linux-4.4.168 cherry-picked commit 768ae309a961 without + # c12d2da56d0e which is covered in Conftest #3. + # ++ ++ # ++ # This function sets the NV_GET_USER_PAGES_* macros as per the below ++ # passing conftest's ++ # ++ set_get_user_pages_defines () { ++ if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" ]; then ++ echo "#define NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" | append_conftest "functions" ++ fi ++ ++ if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" ]; then ++ echo "#define NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions" ++ fi ++ ++ if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" ]; then ++ echo "#define NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" | append_conftest "functions" ++ fi ++ ++ if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_FLAGS" ]; then ++ echo "#define NV_GET_USER_PAGES_HAS_ARGS_FLAGS" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_HAS_ARGS_FLAGS" | append_conftest "functions" ++ fi ++ } ++ + # Conftest #1: Check if get_user_pages accepts 6 arguments. + # Return if true. + # Fall through to conftest #2 on failure. +- # ++ + echo "$CONFTEST_PREAMBLE + #include + long get_user_pages(unsigned long start, +@@ -2490,8 +2521,7 @@ compile_test() { + $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1 + rm -f conftest$$.c + if [ -f conftest$$.o ]; then +- echo "#define NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" +- echo "#undef NV_GET_USER_PAGES_HAS_TASK_STRUCT" | append_conftest "functions" ++ set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" + rm -f conftest$$.o + return + fi +@@ -2516,8 +2546,7 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- echo "#undef NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" +- echo "#undef NV_GET_USER_PAGES_HAS_TASK_STRUCT" | append_conftest "functions" ++ set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_FLAGS" + rm -f conftest$$.o + return + fi +@@ -2544,14 +2573,12 @@ compile_test() { + 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" ++ set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" + 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" ++ set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" + + return + ;; +@@ -2578,10 +2605,47 @@ compile_test() { + # commit 64019a2e467a ("mm/gup: remove task_struct pointer for + # all gup code") in v5.9-rc1 (2020-08-11). + # ++ ++ # ++ # This function sets the NV_GET_USER_PAGES_REMOTE_* macros as per ++ # the below passing conftest's ++ # ++ set_get_user_pages_remote_defines () { ++ if [ "$1" = "" ]; then ++ echo "#undef NV_GET_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions" ++ else ++ echo "#define NV_GET_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions" ++ fi ++ ++ if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" ]; then ++ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions" ++ fi ++ ++ if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" ]; then ++ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" | append_conftest "functions" ++ fi ++ ++ if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" ]; then ++ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" | append_conftest "functions" ++ fi ++ ++ if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" ]; then ++ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" | append_conftest "functions" ++ fi ++ } ++ + # conftest #1: check if get_user_pages_remote() is available + # return if not available. + # Fall through to conftest #2 if it is present +- # ++ + echo "$CONFTEST_PREAMBLE + #include + void conftest_get_user_pages_remote(void) { +@@ -2592,10 +2656,7 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- echo "#undef NV_GET_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions" +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" ++ set_get_user_pages_remote_defines "" + rm -f conftest$$.o + return + fi +@@ -2605,7 +2666,6 @@ compile_test() { + # force arguments. Return if these arguments are present + # Fall through to conftest #3 if these args are absent. + # +- echo "#define NV_GET_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions" + echo "$CONFTEST_PREAMBLE + #include + long get_user_pages_remote(struct task_struct *tsk, +@@ -2623,18 +2683,40 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- echo "#define NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" +- echo "#define NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" ++ set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" + rm -f conftest$$.o + return + fi + +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_WRITE_AND_FORCE_ARGS" | append_conftest "functions" ++ # ++ # conftest #3: check if get_user_pages_remote() has gpu_flags ++ # arguments. Return if these arguments are present ++ # Fall through to conftest #4 if these args are absent. ++ # ++ echo "$CONFTEST_PREAMBLE ++ #include ++ long get_user_pages_remote(struct task_struct *tsk, ++ struct mm_struct *mm, ++ unsigned long start, ++ unsigned long nr_pages, ++ unsigned int gpu_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 ++ set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" ++ rm -f conftest$$.o ++ return ++ fi + + # +- # conftest #3: check if get_user_pages_remote() has locked argument +- # Return if these arguments are present. Fall through to conftest #4 ++ # conftest #4: check if get_user_pages_remote() has locked argument ++ # Return if these arguments are present. Fall through to conftest #5 + # if these args are absent. + # + echo "$CONFTEST_PREAMBLE +@@ -2654,14 +2736,13 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- echo "#define NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" +- echo "#define NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" ++ set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" + rm -f conftest$$.o + return + fi + + # +- # conftest #4: check if get_user_pages_remote() does not take ++ # conftest #5: check if get_user_pages_remote() does not take + # tsk argument. + # + echo "$CONFTEST_PREAMBLE +@@ -2680,13 +2761,8 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" +- echo "#define NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" ++ set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" + rm -f conftest$$.o +- else +- +- echo "#define NV_GET_USER_PAGES_REMOTE_HAS_TSK_ARG" | append_conftest "functions" +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG" | append_conftest "functions" + fi + ;; + +-- +2.20.1 + diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0028-backport-get_user_pages-changes-from-525.53.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0028-backport-get_user_pages-changes-from-525.53.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0028-backport-get_user_pages-changes-from-525.53.patch 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0028-backport-get_user_pages-changes-from-525.53.patch 2024-02-13 00:55:48.000000000 +0000 @@ -0,0 +1,222 @@ +From b9d8faa8e29c60841170873028e1489b1a272d77 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Sun, 6 Aug 2023 17:18:58 +0200 +Subject: [PATCH] backport get_user_pages changes from 525.53 + +--- + common/inc/nv-mm.h | 113 +++++++++++++++------------------- + nvidia-drm/nvidia-drm-linux.c | 4 +- + nvidia/os-mlock.c | 3 +- + 3 files changed, 50 insertions(+), 70 deletions(-) + +diff --git a/common/inc/nv-mm.h b/common/inc/nv-mm.h +index a93079b..c4efd11 100644 +--- a/common/inc/nv-mm.h ++++ b/common/inc/nv-mm.h +@@ -29,6 +29,8 @@ + typedef int vm_fault_t; + #endif + ++#include ++#include + /* get_user_pages + * + * The 8-argument version of get_user_pages was deprecated by commit +@@ -47,38 +49,30 @@ typedef int vm_fault_t; + * + */ + +-#if defined(NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE) ++#if defined(NV_GET_USER_PAGES_HAS_ARGS_FLAGS) + #define NV_GET_USER_PAGES get_user_pages +-#elif defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE) +- #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) ++#elif defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS) ++ #define NV_GET_USER_PAGES(start, nr_pages, flags, pages, vmas) \ ++ get_user_pages(current, current->mm, start, nr_pages, flags, pages, vmas) + #else +- #include +- #include +- + static inline long NV_GET_USER_PAGES(unsigned long start, + unsigned long nr_pages, +- int write, +- int force, ++ unsigned int flags, + struct page **pages, + struct vm_area_struct **vmas) + { +- unsigned int flags = 0; +- +- if (write) +- flags |= FOLL_WRITE; +- if (force) +- flags |= FOLL_FORCE; ++ int write = flags & FOLL_WRITE; ++ int force = flags & FOLL_FORCE; + +- #if defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS) +- return get_user_pages(current, current->mm, start, nr_pages, flags, +- pages, vmas); ++ #if defined(NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE) ++ return get_user_pages(start, nr_pages, write, force, pages, vmas); + #else +- // remaining defination(NV_GET_USER_PAGES_HAS_ARGS_FLAGS) +- return get_user_pages(start, nr_pages, flags, pages, vmas); +- #endif ++ // NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE ++ return get_user_pages(current, current->mm, start, nr_pages, write, ++ force, pages, vmas); ++ #endif // NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE + } +-#endif ++#endif // NV_GET_USER_PAGES_HAS_ARGS_FLAGS + + /* + * get_user_pages_remote() was added by commit 1e9877902dc7 +@@ -113,66 +107,55 @@ typedef int vm_fault_t; + */ + + #if defined(NV_GET_USER_PAGES_REMOTE_PRESENT) +- #if defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE) +- #define NV_GET_USER_PAGES_REMOTE get_user_pages_remote ++ #if defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED) ++ #define NV_GET_USER_PAGES_REMOTE get_user_pages_remote ++ ++ #elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED) ++ #define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \ ++ get_user_pages_remote(NULL, mm, start, nr_pages, flags, pages, vmas, locked) ++ ++ #elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS) ++ #define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \ ++ get_user_pages_remote(NULL, mm, start, nr_pages, flags, pages, vmas) ++ + #else +- static inline long NV_GET_USER_PAGES_REMOTE(struct task_struct *tsk, +- struct mm_struct *mm, ++ // NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE ++ static inline long NV_GET_USER_PAGES_REMOTE(struct mm_struct *mm, + unsigned long start, + unsigned long nr_pages, +- int write, +- int force, ++ unsigned int flags, + struct page **pages, +- struct vm_area_struct **vmas) ++ struct vm_area_struct **vmas, ++ int *locked) + { +- unsigned int flags = 0; ++ int write = flags & FOLL_WRITE; ++ int force = flags & FOLL_FORCE; + +- if (write) +- flags |= FOLL_WRITE; +- if (force) +- flags |= FOLL_FORCE; +- +- #if defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS) +- return get_user_pages_remote(tsk, mm, start, nr_pages, flags, ++ return get_user_pages_remote(NULL, mm, start, nr_pages, write, force, + pages, vmas); +- #elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED) +- return get_user_pages_remote(tsk, mm, start, nr_pages, flags, +- pages, vmas, NULL); +- #else +- // remaining defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED) +- return get_user_pages_remote(mm, start, nr_pages, flags, +- pages, vmas, NULL); +- #endif + } +- #endif ++ #endif // NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED + #else + #if defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE) +- #define NV_GET_USER_PAGES_REMOTE get_user_pages +- #else +- #include +- #include +- +- static inline long NV_GET_USER_PAGES_REMOTE(struct task_struct *tsk, +- struct mm_struct *mm, ++ static inline long NV_GET_USER_PAGES_REMOTE(struct mm_struct *mm, + unsigned long start, + unsigned long nr_pages, +- int write, +- int force, ++ unsigned int flags, + struct page **pages, +- struct vm_area_struct **vmas) ++ struct vm_area_struct **vmas, ++ int *locked) + { +- unsigned int flags = 0; ++ int write = flags & FOLL_WRITE; ++ int force = flags & FOLL_FORCE; + +- if (write) +- flags |= FOLL_WRITE; +- if (force) +- flags |= FOLL_FORCE; +- +- return get_user_pages(tsk, mm, start, nr_pages, flags, pages, vmas); ++ return get_user_pages(NULL, mm, start, nr_pages, write, force, pages, vmas); + } +- #endif +-#endif + ++ #else ++ #define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \ ++ get_user_pages(NULL, mm, start, nr_pages, flags, pages, vmas) ++ #endif // NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE ++#endif // NV_GET_USER_PAGES_REMOTE_PRESENT + + /* + * The .virtual_address field was effectively renamed to .address, by these +diff --git a/nvidia-drm/nvidia-drm-linux.c b/nvidia-drm/nvidia-drm-linux.c +index 8f2ad0b..7c04904 100644 +--- a/nvidia-drm/nvidia-drm-linux.c ++++ b/nvidia-drm/nvidia-drm-linux.c +@@ -103,8 +103,6 @@ int nv_drm_lock_user_pages(unsigned long address, + { + struct mm_struct *mm = current->mm; + struct page **user_pages; +- const int write = 1; +- const int force = 0; + int pages_pinned; + + user_pages = nv_drm_calloc(pages_count, sizeof(*user_pages)); +@@ -115,7 +113,7 @@ int nv_drm_lock_user_pages(unsigned long address, + + nv_mmap_read_lock(mm); + +- pages_pinned = NV_GET_USER_PAGES(address, pages_count, write, force, ++ pages_pinned = NV_GET_USER_PAGES(address, pages_count, FOLL_WRITE, + user_pages, NULL); + nv_mmap_read_unlock(mm); + +diff --git a/nvidia/os-mlock.c b/nvidia/os-mlock.c +index fcedb9a..b9efda0 100644 +--- a/nvidia/os-mlock.c ++++ b/nvidia/os-mlock.c +@@ -102,7 +102,6 @@ NV_STATUS NV_API_CALL os_lock_user_pages( + struct mm_struct *mm = current->mm; + struct page **user_pages; + NvU64 i, pinned; +- NvBool write = 1, force = 0; + int ret; + + if (!NV_MAY_SLEEP()) +@@ -123,7 +122,7 @@ NV_STATUS NV_API_CALL os_lock_user_pages( + + nv_mmap_read_lock(mm); + ret = NV_GET_USER_PAGES((unsigned long)address, +- page_count, write, force, user_pages, NULL); ++ page_count, FOLL_WRITE, user_pages, NULL); + nv_mmap_read_unlock(mm); + pinned = ret; + +-- +2.20.1 + diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0029-backport-get_user_pages-changes-from-525.53-uvm-part.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0029-backport-get_user_pages-changes-from-525.53-uvm-part.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0029-backport-get_user_pages-changes-from-525.53-uvm-part.patch 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0029-backport-get_user_pages-changes-from-525.53-uvm-part.patch 2024-02-13 00:55:48.000000000 +0000 @@ -0,0 +1,93 @@ +From 15a7b831545ab0e8f73ec845d4043156a8517cd2 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Sun, 6 Aug 2023 17:18:58 +0200 +Subject: [PATCH] backport get_user_pages changes from 525.53 (uvm part) + +--- + nvidia-uvm/uvm8_ats_ibm.c | 5 ++--- + nvidia-uvm/uvm8_populate_pageable.c | 4 ++-- + nvidia-uvm/uvm8_tools.c | 2 +- + nvidia-uvm/uvm8_va_space_mm.c | 3 +-- + 4 files changed, 6 insertions(+), 8 deletions(-) + +diff --git a/nvidia-uvm/uvm8_ats_ibm.c b/nvidia-uvm/uvm8_ats_ibm.c +index 5f98f6b..6cd90f8 100644 +--- a/nvidia-uvm/uvm8_ats_ibm.c ++++ b/nvidia-uvm/uvm8_ats_ibm.c +@@ -460,8 +460,7 @@ NV_STATUS uvm_ats_ibm_service_fault(uvm_gpu_va_space_t *gpu_va_space, + { + uvm_va_space_t *va_space = gpu_va_space->va_space; + struct mm_struct *mm = va_space->va_space_mm.mm; +- int write = (access_type >= UVM_FAULT_ACCESS_TYPE_WRITE); +- int force = 0; ++ unsigned int gup_flags = (access_type >= UVM_FAULT_ACCESS_TYPE_WRITE) ? FOLL_WRITE : 0; + struct page *page; + char *mapping; + int ret; +@@ -472,7 +471,7 @@ NV_STATUS uvm_ats_ibm_service_fault(uvm_gpu_va_space_t *gpu_va_space, + uvm_assert_mmap_lock_locked(mm); + + // TODO: Bug 2103669: Service more than a single fault at a time +- ret = NV_GET_USER_PAGES_REMOTE(NULL, mm, (unsigned long)fault_addr, 1, write, force, &page, NULL); ++ ret = NV_GET_USER_PAGES_REMOTE(mm, (unsigned long)fault_addr, 1, gup_flags, &page, NULL, NULL); + if (ret < 0) + return errno_to_nv_status(ret); + +diff --git a/nvidia-uvm/uvm8_populate_pageable.c b/nvidia-uvm/uvm8_populate_pageable.c +index 4aba847..d62d63f 100644 +--- a/nvidia-uvm/uvm8_populate_pageable.c ++++ b/nvidia-uvm/uvm8_populate_pageable.c +@@ -38,7 +38,7 @@ NV_STATUS uvm_populate_pageable_vma(struct vm_area_struct *vma, + unsigned long vma_size; + unsigned long vma_num_pages; + unsigned long outer = start + length; +- const bool is_writable = (vma->vm_flags) & VM_WRITE; ++ unsigned int gup_flags = ((vma->vm_flags) & VM_WRITE) ? FOLL_WRITE : 0; + const bool min_prot_ok = (vma->vm_flags & min_prot) == min_prot; + struct mm_struct *mm = vma->vm_mm; + bool uvm_managed_vma; +@@ -68,7 +68,7 @@ NV_STATUS uvm_populate_pageable_vma(struct vm_area_struct *vma, + if (uvm_managed_vma) + uvm_record_unlock_mmap_lock_read(mm); + +- ret = NV_GET_USER_PAGES(start, vma_num_pages, is_writable, 0, NULL, NULL); ++ ret = NV_GET_USER_PAGES(start, vma_num_pages, gup_flags, NULL, NULL); + + if (uvm_managed_vma) + uvm_record_lock_mmap_lock_read(mm); +diff --git a/nvidia-uvm/uvm8_tools.c b/nvidia-uvm/uvm8_tools.c +index 32261a2..b044abf 100644 +--- a/nvidia-uvm/uvm8_tools.c ++++ b/nvidia-uvm/uvm8_tools.c +@@ -262,7 +262,7 @@ static NV_STATUS map_user_pages(NvU64 user_va, NvU64 size, void **addr, struct p + } + + nv_mmap_read_lock(current->mm); +- ret = NV_GET_USER_PAGES(user_va, num_pages, 1, 0, *pages, vmas); ++ ret = NV_GET_USER_PAGES(user_va, num_pages, FOLL_WRITE, *pages, vmas); + nv_mmap_read_unlock(current->mm); + if (ret != num_pages) { + status = NV_ERR_INVALID_ARGUMENT; +diff --git a/nvidia-uvm/uvm8_va_space_mm.c b/nvidia-uvm/uvm8_va_space_mm.c +index 0c34fec..4806af2 100644 +--- a/nvidia-uvm/uvm8_va_space_mm.c ++++ b/nvidia-uvm/uvm8_va_space_mm.c +@@ -540,14 +540,13 @@ void uvm_va_space_mm_shutdown(uvm_va_space_t *va_space) + static NV_STATUS mm_read64(struct mm_struct *mm, NvU64 addr, NvU64 *val) + { + long ret; +- int write = 0, force = 0; + struct page *page; + NvU64 *mapping; + + UVM_ASSERT(IS_ALIGNED(addr, sizeof(val))); + + uvm_down_read_mmap_lock(mm); +- ret = NV_GET_USER_PAGES_REMOTE(NULL, mm, (unsigned long)addr, 1, write, force, &page, NULL); ++ ret = NV_GET_USER_PAGES_REMOTE(mm, (unsigned long)addr, 1, 0, &page, NULL, NULL); + uvm_up_read_mmap_lock(mm); + + if (ret < 0) +-- +2.20.1 + diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0030-backport-get_user_pages-changes-from-535.86.05.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0030-backport-get_user_pages-changes-from-535.86.05.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0030-backport-get_user_pages-changes-from-535.86.05.patch 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0030-backport-get_user_pages-changes-from-535.86.05.patch 2024-02-13 00:55:48.000000000 +0000 @@ -0,0 +1,392 @@ +From 049e081787816659999a4ebbbf6006d00600e458 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Sun, 6 Aug 2023 14:17:05 +0200 +Subject: [PATCH] backport get_user_pages changes from 535.86.05 + +--- + common/inc/nv-mm.h | 33 ++++++++--- + conftest.sh | 140 ++++++++++++++++++++++++++++++++++----------- + 2 files changed, 130 insertions(+), 43 deletions(-) + +diff --git a/common/inc/nv-mm.h b/common/inc/nv-mm.h +index c4efd11..d5290aa 100644 +--- a/common/inc/nv-mm.h ++++ b/common/inc/nv-mm.h +@@ -47,11 +47,18 @@ typedef int vm_fault_t; + * commit 8e50b8b07f462ab4b91bc1491b1c91bd75e4ad40 which cherry-picked the + * replacement of the write and force parameters with gup_flags + * ++ * Removed vmas parameter from get_user_pages() by commit 7bbf9c8c99 ++ * ("mm/gup: remove unused vmas parameter from get_user_pages()") ++ * in linux-next, expected in v6.5-rc1 (2023-05-17) ++ * + */ + + #if defined(NV_GET_USER_PAGES_HAS_ARGS_FLAGS) ++ #define NV_GET_USER_PAGES(start, nr_pages, flags, pages, vmas) \ ++ get_user_pages(start, nr_pages, flags, pages) ++#elif defined(NV_GET_USER_PAGES_HAS_ARGS_FLAGS_VMAS) + #define NV_GET_USER_PAGES get_user_pages +-#elif defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS) ++#elif defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS_VMAS) + #define NV_GET_USER_PAGES(start, nr_pages, flags, pages, vmas) \ + get_user_pages(current, current->mm, start, nr_pages, flags, pages, vmas) + #else +@@ -64,13 +71,13 @@ typedef int vm_fault_t; + int write = flags & FOLL_WRITE; + int force = flags & FOLL_FORCE; + +- #if defined(NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE) ++ #if defined(NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE_VMAS) + return get_user_pages(start, nr_pages, write, force, pages, vmas); + #else +- // NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE ++ // NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS + return get_user_pages(current, current->mm, start, nr_pages, write, + force, pages, vmas); +- #endif // NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE ++ #endif // NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE_VMAS + } + #endif // NV_GET_USER_PAGES_HAS_ARGS_FLAGS + +@@ -104,22 +111,30 @@ typedef int vm_fault_t; + * commit 64019a2e467a ("mm/gup: remove task_struct pointer for + * all gup code") in v5.9-rc1 (2020-08-11). + * ++ * Removed vmas parameter from get_user_pages_remote() by commit a4bde14d549 ++ * ("mm/gup: remove vmas parameter from get_user_pages_remote()") ++ * in linux-next, expected in v6.5-rc1 (2023-05-14) ++ * + */ + + #if defined(NV_GET_USER_PAGES_REMOTE_PRESENT) + #if defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED) ++ #define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \ ++ get_user_pages_remote(mm, start, nr_pages, flags, pages, locked) ++ ++ #elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED_VMAS) + #define NV_GET_USER_PAGES_REMOTE get_user_pages_remote + +- #elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED) ++ #elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED_VMAS) + #define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \ + get_user_pages_remote(NULL, mm, start, nr_pages, flags, pages, vmas, locked) + +- #elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS) ++ #elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_VMAS) + #define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \ + get_user_pages_remote(NULL, mm, start, nr_pages, flags, pages, vmas) + + #else +- // NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE ++ // NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE_VMAS + static inline long NV_GET_USER_PAGES_REMOTE(struct mm_struct *mm, + unsigned long start, + unsigned long nr_pages, +@@ -136,7 +151,7 @@ typedef int vm_fault_t; + } + #endif // NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED + #else +- #if defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE) ++ #if defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS) + static inline long NV_GET_USER_PAGES_REMOTE(struct mm_struct *mm, + unsigned long start, + unsigned long nr_pages, +@@ -154,7 +169,7 @@ typedef int vm_fault_t; + #else + #define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \ + get_user_pages(NULL, mm, start, nr_pages, flags, pages, vmas) +- #endif // NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE ++ #endif // NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS + #endif // NV_GET_USER_PAGES_REMOTE_PRESENT + + /* +diff --git a/conftest.sh b/conftest.sh +index ad4dd50..e14c700 100755 +--- a/conftest.sh ++++ b/conftest.sh +@@ -2469,6 +2469,10 @@ compile_test() { + # commit 768ae309a961 ("mm: replace get_user_pages() write/force + # parameters with gup_flags") in v4.9 (2016-10-13) + # ++ # Removed vmas parameter from get_user_pages() by commit 7bbf9c8c99 ++ # ("mm/gup: remove unused vmas parameter from get_user_pages()") ++ # in linux-next, expected in v6.5-rc1 ++ # + # linux-4.4.168 cherry-picked commit 768ae309a961 without + # c12d2da56d0e which is covered in Conftest #3. + # +@@ -2478,22 +2482,28 @@ compile_test() { + # passing conftest's + # + set_get_user_pages_defines () { +- if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" ]; then +- echo "#define NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" | append_conftest "functions" ++ if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE_VMAS" ]; then ++ echo "#define NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE_VMAS" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE_VMAS" | append_conftest "functions" ++ fi ++ ++ if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS" ]; then ++ echo "#define NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS" | append_conftest "functions" + else +- echo "#undef NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" | append_conftest "functions" ++ echo "#undef NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS" | append_conftest "functions" + fi + +- if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" ]; then +- echo "#define NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions" ++ if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS_VMAS" ]; then ++ echo "#define NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS_VMAS" | append_conftest "functions" + else +- echo "#undef NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions" ++ echo "#undef NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS_VMAS" | append_conftest "functions" + fi + +- if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" ]; then +- echo "#define NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" | append_conftest "functions" ++ if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_FLAGS_VMAS" ]; then ++ echo "#define NV_GET_USER_PAGES_HAS_ARGS_FLAGS_VMAS" | append_conftest "functions" + else +- echo "#undef NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" | append_conftest "functions" ++ echo "#undef NV_GET_USER_PAGES_HAS_ARGS_FLAGS_VMAS" | append_conftest "functions" + fi + + if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_FLAGS" ]; then +@@ -2501,6 +2511,7 @@ compile_test() { + else + echo "#undef NV_GET_USER_PAGES_HAS_ARGS_FLAGS" | append_conftest "functions" + fi ++ + } + + # Conftest #1: Check if get_user_pages accepts 6 arguments. +@@ -2521,14 +2532,15 @@ compile_test() { + $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1 + rm -f conftest$$.c + if [ -f conftest$$.o ]; then +- set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" ++ set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE_VMAS" + rm -f conftest$$.o + return + fi + + # Conftest #2: Check if get_user_pages has gup_flags instead of + # write and force parameters. And that gup doesn't accept a +- # task_struct and mm_struct as its first arguments. ++ # task_struct and mm_struct as its first arguments. get_user_pages ++ # has vm_area_struct as its last argument. + # Return if available. + # Fall through to conftest #3 on failure. + +@@ -2546,16 +2558,17 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_FLAGS" ++ set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_FLAGS_VMAS" + rm -f conftest$$.o + return + fi + + # Conftest #3: Check if get_user_pages has gup_flags instead of +- # write and force parameters AND that gup has task_struct and +- # mm_struct as its first arguments. ++ # write and force parameters. The gup has task_struct and ++ # mm_struct as its first arguments. get_user_pages ++ # has vm_area_struct as its last argument. + # Return if available. +- # Fall through to default case if absent. ++ # Fall through to conftest #4 on failure. + + echo "$CONFTEST_PREAMBLE + #include +@@ -2573,12 +2586,35 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" ++ set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS_VMAS" + rm -f conftest$$.o + return + fi + +- set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" ++ # Conftest #4: gup doesn't accept a task_struct and mm_struct as ++ # its first arguments. check if get_user_pages() does not take ++ # vmas argument. ++ # Fall through to default case otherwise. ++ ++ echo "$CONFTEST_PREAMBLE ++ #include ++ long get_user_pages(unsigned long start, ++ unsigned long nr_pages, ++ unsigned int gup_flags, ++ struct page **pages) { ++ return 0; ++ }" > conftest$$.c ++ ++ $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1 ++ rm -f conftest$$.c ++ ++ if [ -f conftest$$.o ]; then ++ set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_FLAGS" ++ rm -f conftest$$.o ++ return ++ fi ++ ++ set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS" + + return + ;; +@@ -2605,6 +2641,10 @@ compile_test() { + # commit 64019a2e467a ("mm/gup: remove task_struct pointer for + # all gup code") in v5.9-rc1 (2020-08-11). + # ++ # Removed vmas parameter from get_user_pages_remote() by commit ++ # a4bde14d549 ("mm/gup: remove vmas parameter from get_user_pages_remote()") ++ # in linux-next, expected in v6.5-rc1 ++ # + + # + # This function sets the NV_GET_USER_PAGES_REMOTE_* macros as per +@@ -2617,22 +2657,28 @@ compile_test() { + echo "#define NV_GET_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions" + fi + +- if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" ]; then +- echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions" ++ if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE_VMAS" ]; then ++ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE_VMAS" | append_conftest "functions" + else +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions" ++ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE_VMAS" | append_conftest "functions" + fi + +- if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" ]; then +- echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" | append_conftest "functions" ++ if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_VMAS" ]; then ++ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_VMAS" | append_conftest "functions" + else +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" | append_conftest "functions" ++ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_VMAS" | append_conftest "functions" + fi + +- if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" ]; then +- echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" | append_conftest "functions" ++ if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED_VMAS" ]; then ++ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED_VMAS" | append_conftest "functions" + else +- echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" | append_conftest "functions" ++ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED_VMAS" | append_conftest "functions" ++ fi ++ ++ if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED_VMAS" ]; then ++ echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED_VMAS" | append_conftest "functions" ++ else ++ echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED_VMAS" | append_conftest "functions" + fi + + if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" ]; then +@@ -2640,6 +2686,7 @@ compile_test() { + else + echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" | append_conftest "functions" + fi ++ + } + + # conftest #1: check if get_user_pages_remote() is available +@@ -2662,8 +2709,8 @@ compile_test() { + fi + + # +- # conftest #2: check if get_user_pages_remote() has write and +- # force arguments. Return if these arguments are present ++ # conftest #2: check if get_user_pages_remote() has write, force ++ # and vmas arguments. Return if these arguments are present + # Fall through to conftest #3 if these args are absent. + # + echo "$CONFTEST_PREAMBLE +@@ -2683,14 +2730,14 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" ++ set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE_VMAS" + rm -f conftest$$.o + return + fi + + # +- # conftest #3: check if get_user_pages_remote() has gpu_flags +- # arguments. Return if these arguments are present ++ # conftest #3: check if get_user_pages_remote() has gpu_flags and ++ # vmas arguments. Return if these arguments are present + # Fall through to conftest #4 if these args are absent. + # + echo "$CONFTEST_PREAMBLE +@@ -2709,13 +2756,14 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" ++ set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_VMAS" + rm -f conftest$$.o + return + fi + + # +- # conftest #4: check if get_user_pages_remote() has locked argument ++ # conftest #4: check if get_user_pages_remote() has locked and ++ # vmas argument + # Return if these arguments are present. Fall through to conftest #5 + # if these args are absent. + # +@@ -2736,7 +2784,7 @@ compile_test() { + rm -f conftest$$.c + + if [ -f conftest$$.o ]; then +- set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" ++ set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED_VMAS" + rm -f conftest$$.o + return + fi +@@ -2760,10 +2808,34 @@ compile_test() { + $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1 + rm -f conftest$$.c + ++ if [ -f conftest$$.o ]; then ++ set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED_VMAS" ++ rm -f conftest$$.o ++ fi ++ ++ # ++ # conftest #6: check if get_user_pages_remote() does not take ++ # vmas argument. ++ # ++ echo "$CONFTEST_PREAMBLE ++ #include ++ long get_user_pages_remote(struct mm_struct *mm, ++ unsigned long start, ++ unsigned long nr_pages, ++ unsigned int gup_flags, ++ struct page **pages, ++ int *locked) { ++ return 0; ++ }" > conftest$$.c ++ ++ $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1 ++ rm -f conftest$$.c ++ + if [ -f conftest$$.o ]; then + set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" + rm -f conftest$$.o + fi ++ + ;; + + usleep_range) +-- +2.20.1 + diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0031-backport-asm-page.h-changes-from-470.223.02.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0031-backport-asm-page.h-changes-from-470.223.02.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0031-backport-asm-page.h-changes-from-470.223.02.patch 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0031-backport-asm-page.h-changes-from-470.223.02.patch 2024-02-13 00:55:48.000000000 +0000 @@ -0,0 +1,69 @@ +From 63909625486ceb4c716222afd8c1216a4d30a62e Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Wed, 1 Nov 2023 10:30:50 +0100 +Subject: [PATCH] backport asm/page.h changes from 470.223.02 + +--- + Kbuild | 1 + + conftest.sh | 12 ++++++++++++ + 2 files changed, 13 insertions(+) + +diff --git a/Kbuild b/Kbuild +index cdce88f..f977eaf 100644 +--- a/Kbuild ++++ b/Kbuild +@@ -224,6 +224,7 @@ NV_HEADER_PRESENCE_TESTS = \ + asm/opal-api.h \ + sound/hdaudio.h \ + asm/pgtable_types.h \ ++ asm/page.h \ + linux/dma-map-ops.h \ + linux/stdarg.h \ + linux/iosys-map.h \ +diff --git a/conftest.sh b/conftest.sh +index e14c700..93c8f8a 100755 +--- a/conftest.sh ++++ b/conftest.sh +@@ -419,6 +419,9 @@ compile_test() { + #if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT) + #include + #endif ++ #if defined(NV_ASM_PAGE_H_PRESENT) ++ #include ++ #endif + #include + #else + #include +@@ -441,6 +444,9 @@ compile_test() { + #if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT) + #include + #endif ++ #if defined(NV_ASM_PAGE_H_PRESENT) ++ #include ++ #endif + #include + #else + #include +@@ -498,6 +504,9 @@ compile_test() { + #if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT) + #include + #endif ++ #if defined(NV_ASM_PAGE_H_PRESENT) ++ #include ++ #endif + #include + #else + #include +@@ -525,6 +534,9 @@ compile_test() { + #if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT) + #include + #endif ++ #if defined(NV_ASM_PAGE_H_PRESENT) ++ #include ++ #endif + #include + #else + #include +-- +2.20.1 + diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0032-backport-drm_gem_prime_handle_to_fd-changes-from-470.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0032-backport-drm_gem_prime_handle_to_fd-changes-from-470.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0032-backport-drm_gem_prime_handle_to_fd-changes-from-470.patch 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0032-backport-drm_gem_prime_handle_to_fd-changes-from-470.patch 2024-02-13 00:55:48.000000000 +0000 @@ -0,0 +1,54 @@ +From 07186b31772ab28b990e4c5a9a6794c12c31dad8 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Wed, 1 Nov 2023 10:31:40 +0100 +Subject: [PATCH] backport drm_gem_prime_handle_to_fd changes from 470.223.02 + +--- + nvidia-drm/nvidia-drm-drv.c | 15 +++++++++++++++ + nvidia-drm/nvidia-drm.Kbuild | 2 ++ + 2 files changed, 17 insertions(+) + +diff --git a/nvidia-drm/nvidia-drm-drv.c b/nvidia-drm/nvidia-drm-drv.c +index a183aa3..d943cb5 100644 +--- a/nvidia-drm/nvidia-drm-drv.c ++++ b/nvidia-drm/nvidia-drm-drv.c +@@ -739,8 +739,23 @@ static struct drm_driver nv_drm_driver = { + .ioctls = nv_drm_ioctls, + .num_ioctls = ARRAY_SIZE(nv_drm_ioctls), + ++/* ++ * linux-next commit 71a7974ac701 ("drm/prime: Unexport helpers for fd/handle ++ * conversion") unexports drm_gem_prime_handle_to_fd() and ++ * drm_gem_prime_fd_to_handle(). ++ * ++ * Prior linux-next commit 6b85aa68d9d5 ("drm: Enable PRIME import/export for ++ * all drivers") made these helpers the default when .prime_handle_to_fd / ++ * .prime_fd_to_handle are unspecified, so it's fine to just skip specifying ++ * them if the helpers aren't present. ++ */ ++#if NV_IS_EXPORT_SYMBOL_PRESENT_drm_gem_prime_handle_to_fd + .prime_handle_to_fd = drm_gem_prime_handle_to_fd, ++#endif ++#if NV_IS_EXPORT_SYMBOL_PRESENT_drm_gem_prime_fd_to_handle + .prime_fd_to_handle = drm_gem_prime_fd_to_handle, ++#endif ++ + .gem_prime_import = nv_drm_gem_prime_import, + .gem_prime_import_sg_table = nv_drm_gem_prime_import_sg_table, + +diff --git a/nvidia-drm/nvidia-drm.Kbuild b/nvidia-drm/nvidia-drm.Kbuild +index a5e2eed..28556cb 100644 +--- a/nvidia-drm/nvidia-drm.Kbuild ++++ b/nvidia-drm/nvidia-drm.Kbuild +@@ -53,6 +53,8 @@ NV_CONFTEST_GENERIC_COMPILE_TESTS += drm_atomic_available + NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_gpl_refcount_inc + NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_gpl_refcount_dec_and_test + NV_CONFTEST_GENERIC_COMPILE_TESTS += drm_alpha_blending_available ++NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_fd_to_handle ++NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_handle_to_fd + + NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_dev_unref + NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_reinit_primary_mode_group +-- +2.20.1 + diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0033-refuse-to-load-legacy-module-if-IBT-is-enabled.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0033-refuse-to-load-legacy-module-if-IBT-is-enabled.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0033-refuse-to-load-legacy-module-if-IBT-is-enabled.patch 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/0033-refuse-to-load-legacy-module-if-IBT-is-enabled.patch 2024-02-13 00:55:48.000000000 +0000 @@ -0,0 +1,63 @@ +From b0296d05fea565b07844b85e8745525b4d05ac59 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann +Date: Sat, 4 Nov 2023 00:44:56 +0100 +Subject: [PATCH] refuse to load legacy module if IBT is enabled + +IBT (Indirect Branch Tracking) has been enabled by default (compiled in +everywhere since it is effectively a no-op and enabled at runtime on +supported CPUs, i.e. 11th gen. Intel Core processors (aka Tigerlake) or +newer) since Linux 6.2, it can be disabled by booting with ibt=off. +All entry points reachable from indirect JMP or CALL instructions need +to contain the ENDBR instruction (actually just a NOP that is given a +special meaning by enabling IBT) otherwise the CPU will raise a control +flow exception. + +If the BLOB part of the NVIDIA module hasn't been built with IBT +support, the module cannot be used if IBT is active. Check for that +condition and abort module load to avoid kernel errors later. + +https://bugs.debian.org/1052069 +--- + nvidia-modeset/nvidia-modeset-linux.c | 7 +++++++ + nvidia/nv.c | 7 +++++++ + 2 files changed, 14 insertions(+) + +diff --git a/nvidia-modeset/nvidia-modeset-linux.c b/nvidia-modeset/nvidia-modeset-linux.c +index 99367bf..b0b5ded 100644 +--- a/nvidia-modeset/nvidia-modeset-linux.c ++++ b/nvidia-modeset/nvidia-modeset-linux.c +@@ -1299,6 +1299,13 @@ static int __init nvkms_init(void) + { + int ret; + ++#ifdef CONFIG_X86_KERNEL_IBT ++ if (cpu_feature_enabled(X86_FEATURE_IBT)) { ++ printk(KERN_ERR NVKMS_LOG_PREFIX "This NVIDIA driver version is incompatible with IBT. Try booting with ibt=off."); ++ return -EINVAL; ++ } ++#endif ++ + ret = nvkms_alloc_rm(); + + if (ret != 0) { +diff --git a/nvidia/nv.c b/nvidia/nv.c +index 96a8d37..48ceaf5 100644 +--- a/nvidia/nv.c ++++ b/nvidia/nv.c +@@ -714,6 +714,13 @@ int __init nvidia_init_module(void) + NvU32 count; + nvidia_stack_t *sp = NULL; + ++#ifdef CONFIG_X86_KERNEL_IBT ++ if (cpu_feature_enabled(X86_FEATURE_IBT)) { ++ printk(KERN_ERR "NVRM: This NVIDIA driver version is incompatible with IBT. Try booting with ibt=off."); ++ return -EINVAL; ++ } ++#endif ++ + nv_user_map_init(); + nv_memdbg_init(); + +-- +2.20.1 + diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/conftest-verbose.patch nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/conftest-verbose.patch --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/conftest-verbose.patch 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/conftest-verbose.patch 2024-02-13 00:55:48.000000000 +0000 @@ -42,7 +42,7 @@ # Each of these headers is checked for presence with a test #include; a -@@ -241,8 +255,9 @@ NV_HEADER_PRESENCE_PART = $(addprefix $( +@@ -242,8 +256,9 @@ NV_HEADER_PRESENCE_PART = $(addprefix $( # Define a rule to check the header $(1). define NV_HEADER_PRESENCE_CHECK @@ -53,7 +53,7 @@ @$$(NV_CONFTEST_CMD) test_kernel_header '$$(NV_CONFTEST_CFLAGS)' '$(1)' > $$@ endef -@@ -252,6 +267,8 @@ $(foreach header,$(NV_HEADER_PRESENCE_TE +@@ -253,6 +268,8 @@ $(foreach header,$(NV_HEADER_PRESENCE_TE # Concatenate all of the parts into headers.h. $(obj)/conftest/headers.h: $(call NV_HEADER_PRESENCE_PART,$(NV_HEADER_PRESENCE_TESTS)) @cat $^ > $@ @@ -62,7 +62,7 @@ clean-dirs := $(obj)/conftest -@@ -272,7 +289,8 @@ BUILD_SANITY_CHECKS = \ +@@ -273,7 +290,8 @@ BUILD_SANITY_CHECKS = \ .PHONY: $(BUILD_SANITY_CHECKS) diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/series.in nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/series.in --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/series.in 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/module/debian/patches/series.in 2024-02-13 00:55:48.000000000 +0000 @@ -2,10 +2,17 @@ bashisms.patch # kernel support -0010-backport-pci-dma-changes-for-ppc64el.patch +0010-backport-pci-dma-changes-for-ppc64el-from-470.223.02.patch 0021-backport-acpi_op_remove-changes-from-470.182.03.patch 0023-backport-vm_area_struct_has_const_vm_flags-changes-f.patch 0024-backport-vm_area_struct_has_const_vm_flags-changes-f.patch +0027-backport-get_user_pages-changes-from-520.56.06.patch +0028-backport-get_user_pages-changes-from-525.53.patch +0029-backport-get_user_pages-changes-from-525.53-uvm-part.patch +0030-backport-get_user_pages-changes-from-535.86.05.patch +0031-backport-asm-page.h-changes-from-470.223.02.patch +0032-backport-drm_gem_prime_handle_to_fd-changes-from-470.patch +0033-refuse-to-load-legacy-module-if-IBT-is-enabled.patch ppc64el.patch # build system updates diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-alternative.postinst.in nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-alternative.postinst.in --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-alternative.postinst.in 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-alternative.postinst.in 2024-02-13 00:55:48.000000000 +0000 @@ -87,7 +87,7 @@ if [ -f /usr/include/nvml.h ]; then libnvidia_ml_so_slave="$(add_multiarch_slave /usr/lib "" libnvidia-ml.so /usr/lib #PRIVATE#/)" fi - if echo "$slaves" | grep -q "slave" ; then + if echo "DISABLED" | grep -q "slave" ; then update-alternatives --install /usr/lib/nvidia/nvidia nvidia /usr/lib/nvidia/#CURRENT# #MAJOR# $slaves $conf_slaves $kmod_slaves $libnvidia_ml_so_slave else update-alternatives --remove nvidia /usr/lib/nvidia/#CURRENT# diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-alternative.preinst.in nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-alternative.preinst.in --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-alternative.preinst.in 1970-01-01 00:00:00.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-alternative.preinst.in 2024-02-13 00:55:48.000000000 +0000 @@ -0,0 +1,7 @@ +#!/bin/sh +set -e + + update-alternatives --remove nvidia /usr/lib/#PRIVATE# + dpkg-trigger --no-await register-glx-alternative-nvidia + +#DEBHELPER# diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-driver.NEWS nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-driver.NEWS --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-driver.NEWS 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-driver.NEWS 2024-02-13 00:55:48.000000000 +0000 @@ -1,3 +1,16 @@ +nvidia-graphics-drivers-tesla-450 (450.248.02-4) unstable; urgency=medium + + The Tesla 450 driver series has been declared as End-of-Life by + NVIDIA. No further updates fixing security issues, critical bugs, or + adding support for new Xorg or Linux releases will be issued. + https://docs.nvidia.com/datacenter/tesla/drivers/ + + The Tesla 450 driver packages have been turned into transitional packages + to automatically switch to the Tesla 470 driver (which supports a superset + of GPUs). + + -- Andreas Beckmann Wed, 22 Nov 2023 14:13:01 +0100 + nvidia-graphics-drivers-tesla-418 (418.226.00-3) unstable; urgency=medium The Tesla 418 driver series has been declared as End-of-Life by diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-kernel-dkms.NEWS nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-kernel-dkms.NEWS --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-kernel-dkms.NEWS 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-kernel-dkms.NEWS 2024-02-13 00:55:48.000000000 +0000 @@ -1,3 +1,16 @@ +nvidia-graphics-drivers-tesla-450 (450.248.02-4) unstable; urgency=medium + + The Tesla 450 driver series has been declared as End-of-Life by + NVIDIA. No further updates fixing security issues, critical bugs, or + adding support for new Xorg or Linux releases will be issued. + https://docs.nvidia.com/datacenter/tesla/drivers/ + + The Tesla 450 driver packages have been turned into transitional packages + to automatically switch to the Tesla 470 driver (which supports a superset + of GPUs). + + -- Andreas Beckmann Wed, 22 Nov 2023 14:13:01 +0100 + nvidia-graphics-drivers-tesla-418 (418.226.00-3) unstable; urgency=medium The Tesla 418 driver series has been declared as End-of-Life by diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-kernel-source.NEWS nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-kernel-source.NEWS --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-kernel-source.NEWS 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-kernel-source.NEWS 2024-02-13 00:55:48.000000000 +0000 @@ -1,3 +1,16 @@ +nvidia-graphics-drivers-tesla-450 (450.248.02-4) unstable; urgency=medium + + The Tesla 450 driver series has been declared as End-of-Life by + NVIDIA. No further updates fixing security issues, critical bugs, or + adding support for new Xorg or Linux releases will be issued. + https://docs.nvidia.com/datacenter/tesla/drivers/ + + The Tesla 450 driver packages have been turned into transitional packages + to automatically switch to the Tesla 470 driver (which supports a superset + of GPUs). + + -- Andreas Beckmann Wed, 22 Nov 2023 14:13:01 +0100 + nvidia-graphics-drivers-tesla-418 (418.226.00-3) unstable; urgency=medium The Tesla 418 driver series has been declared as End-of-Life by diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-options.conf.in nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-options.conf.in --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-options.conf.in 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia-options.conf.in 2024-02-13 00:55:48.000000000 +0000 @@ -1,4 +1,4 @@ #options #MODULE# NVreg_DeviceFileUID=0 NVreg_DeviceFileGID=44 NVreg_DeviceFileMode=0660 -# To enable FastWrites and Sidebus addressing, uncomment these lines -# options #MODULE# NVreg_EnableAGPSBA=1 -# options #MODULE# NVreg_EnableAGPFW=1 + +# To grant performance counter access to unprivileged users, uncomment the following line: +#options #MODULE# NVreg_RestrictProfilingToAdminUsers=0 diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia.NEWS nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia.NEWS --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia.NEWS 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/nvidia.NEWS 2024-02-13 00:55:48.000000000 +0000 @@ -1,3 +1,16 @@ +nvidia-graphics-drivers-tesla-450 (450.248.02-4) unstable; urgency=medium + + The Tesla 450 driver series has been declared as End-of-Life by + NVIDIA. No further updates fixing security issues, critical bugs, or + adding support for new Xorg or Linux releases will be issued. + https://docs.nvidia.com/datacenter/tesla/drivers/ + + The Tesla 450 driver packages have been turned into transitional packages + to automatically switch to the Tesla 470 driver (which supports a superset + of GPUs). + + -- Andreas Beckmann Wed, 22 Nov 2023 14:13:01 +0100 + nvidia-graphics-drivers-tesla-418 (418.226.00-3) unstable; urgency=medium The Tesla 418 driver series has been declared as End-of-Life by diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/rules nvidia-graphics-drivers-tesla-450-450.248.02/debian/rules --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/rules 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/rules 2024-02-13 00:55:48.000000000 +0000 @@ -6,6 +6,8 @@ include /usr/share/dpkg/architecture.mk include /usr/share/dpkg/pkg-info.mk +NVIDIA_RELEASE = $(DEB_VERSION_UPSTREAM) +NVIDIA_MAJOR = $(firstword $(subst ., ,$(NVIDIA_RELEASE))) include debian/rules.defs NVIDIA_TESLA ?= NVIDIA_LEGACY ?= @@ -25,9 +27,8 @@ NO_AUTOPKGTEST_ARCH_LIST?= NO_VULKAN_ARCH_LIST ?= -NVIDIA_RELEASE = $(DEB_VERSION_UPSTREAM) version = $(NVIDIA_RELEASE) -version_major = $(firstword $(subst ., ,$(version))) +version_major = $(NVIDIA_MAJOR) ifeq (yes,$(NVIDIA_TESLA)) variant = $(if $(NVIDIA_TESLA),tesla) variant_description = $(if $(NVIDIA_TESLA), (Tesla version)) @@ -235,6 +236,8 @@ execute_after_dh_clean: $(RM) $(AUTOCLEAN) + md5sum --check debian/control.md5sum --status || \ + touch debian/rules.defs $(MAKE) -f debian/rules $(AUTOKEEP) # this will fail unless debian/control{,.md5sum} is up-to-date md5sum --check debian/control.md5sum --status || \ diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/rules.defs nvidia-graphics-drivers-tesla-450-450.248.02/debian/rules.defs --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/rules.defs 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/rules.defs 2024-02-13 00:55:48.000000000 +0000 @@ -3,12 +3,13 @@ #NVIDIA_TESLA = yes NVIDIA_TESLA = $(TESLA_MAJOR) #NVIDIA_LEGACY = -#WATCH_VERSION = +#WATCH_VERSION = $(NVIDIA_MAJOR) +GIT_BRANCH = $(variant)/transition-470 XORG_ABI_LIST = 25 24 23 20 19 18 15 14 13 12 11 10 8 6.0 XORG_BOUND = (<< 2:21.99) -LINUX_KMOD_TESTED = 6.4 +LINUX_KMOD_TESTED = 6.6 ARCH_LIST = amd64 ARCH_LIST += i386 diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/tests/control nvidia-graphics-drivers-tesla-450-450.248.02/debian/tests/control --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/tests/control 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/tests/control 2024-02-13 00:55:48.000000000 +0000 @@ -8,21 +8,21 @@ # amd64 linux-headers-amd64 [amd64], linux-headers-cloud-amd64 [amd64], - linux-headers-rt-amd64 [amd64], +# linux-headers-rt-amd64 [amd64], # i386 linux-headers-686 [i386], linux-headers-686-pae [i386], - linux-headers-rt-686-pae [i386], +# linux-headers-rt-686-pae [i386], # armhf linux-headers-armmp [armhf], linux-headers-armmp-lpae [armhf], - linux-headers-rt-armmp [armhf], +# linux-headers-rt-armmp [armhf], # ppc64el linux-headers-powerpc64le [ppc64el], # arm64 linux-headers-arm64 [arm64], linux-headers-cloud-arm64 [arm64], - linux-headers-rt-arm64 [arm64], +# linux-headers-rt-arm64 [arm64], Restrictions: superficial, needs-root, diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/tests/control.in nvidia-graphics-drivers-tesla-450-450.248.02/debian/tests/control.in --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/tests/control.in 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/tests/control.in 2024-02-13 00:55:48.000000000 +0000 @@ -8,21 +8,21 @@ # amd64 linux-headers-amd64 [amd64], linux-headers-cloud-amd64 [amd64], - linux-headers-rt-amd64 [amd64], +# linux-headers-rt-amd64 [amd64], # i386 linux-headers-686 [i386], linux-headers-686-pae [i386], - linux-headers-rt-686-pae [i386], +# linux-headers-rt-686-pae [i386], # armhf linux-headers-armmp [armhf], linux-headers-armmp-lpae [armhf], - linux-headers-rt-armmp [armhf], +# linux-headers-rt-armmp [armhf], # ppc64el linux-headers-powerpc64le [ppc64el], # arm64 linux-headers-arm64 [arm64], linux-headers-cloud-arm64 [arm64], - linux-headers-rt-arm64 [arm64], +# linux-headers-rt-arm64 [arm64], Restrictions: superficial, needs-root, diff -Nru nvidia-graphics-drivers-tesla-450-450.248.02/debian/xserver-xorg-video-nvidia.NEWS nvidia-graphics-drivers-tesla-450-450.248.02/debian/xserver-xorg-video-nvidia.NEWS --- nvidia-graphics-drivers-tesla-450-450.248.02/debian/xserver-xorg-video-nvidia.NEWS 2023-07-10 12:33:11.000000000 +0000 +++ nvidia-graphics-drivers-tesla-450-450.248.02/debian/xserver-xorg-video-nvidia.NEWS 2024-02-13 00:55:48.000000000 +0000 @@ -1,3 +1,16 @@ +nvidia-graphics-drivers-tesla-450 (450.248.02-4) unstable; urgency=medium + + The Tesla 450 driver series has been declared as End-of-Life by + NVIDIA. No further updates fixing security issues, critical bugs, or + adding support for new Xorg or Linux releases will be issued. + https://docs.nvidia.com/datacenter/tesla/drivers/ + + The Tesla 450 driver packages have been turned into transitional packages + to automatically switch to the Tesla 470 driver (which supports a superset + of GPUs). + + -- Andreas Beckmann Wed, 22 Nov 2023 14:13:01 +0100 + nvidia-graphics-drivers-tesla-418 (418.226.00-3) unstable; urgency=medium The Tesla 418 driver series has been declared as End-of-Life by