commit: eb3a363a3e89750d415ca3e1f9356e6c06e79cd4 Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> AuthorDate: Sun Dec 7 00:02:10 2025 +0000 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> CommitDate: Sun Dec 7 00:18:28 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eb3a363a
x11-drivers/nvidia-drivers: fix build with ZONE_DEVICE + kernel 6.18 When marking as 6.18 compatible, I missed this USE=kernel-open build failure given it only happens when CONFIG_ZONE_DEVICE is enabled and the kernel I tested did not (option requires memory hotplugging and hotremove support to be enabled, not enabled by defconfig). Normally we do not backport kernel fixes, but in this case the only fixed version is currently the 590.x (unkeyworded) beta and given 6.18 is due to become LTS I'd rather get this fixed now (possible that new 0/vulkan releases will not include the fix too). Only 580.x is affected given older branches did not use this function. Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> ...-kernel-module-source-580.95.05-kernel6.18.patch | 21 +++++++++++++++++++++ .../nvidia-drivers/nvidia-drivers-580.105.08.ebuild | 1 + .../nvidia-drivers/nvidia-drivers-580.94.11.ebuild | 1 + .../nvidia-drivers/nvidia-drivers-580.95.05.ebuild | 1 + 4 files changed, 24 insertions(+) diff --git a/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.95.05-kernel6.18.patch b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.95.05-kernel6.18.patch new file mode 100644 index 000000000000..c0e061b6f4dc --- /dev/null +++ b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.95.05-kernel6.18.patch @@ -0,0 +1,21 @@ +get_dev_pagemap() is only used with CONFIG_ZONE_DEVICE and +USE=kernel-open, and in kernel 6.18 takes one argument in less that +NVIDIA seemingly did not need. + +This is a simplified version of 590.44.01's fix which skips the +conftest.sh changes for easier backporting (at worst the simple version +check may break if the kernel backports this to older kernels). + +[1] https://github.com/NVIDIA/open-gpu-kernel-modules/pull/951 +--- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_va_range_device_p2p.c ++++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_va_range_device_p2p.c +@@ -361,5 +361,9 @@ + if (gpu->parent->cdmm_enabled) { + get_page(page); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,18,0) ++ get_dev_pagemap(page_to_pfn(page)); ++#else + get_dev_pagemap(page_to_pfn(page), NULL); ++#endif + } + #else diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.105.08.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-580.105.08.ebuild index 76bc7af3e50d..624a5b36ea1a 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-580.105.08.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.105.08.ebuild @@ -101,6 +101,7 @@ QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch + "${FILESDIR}"/nvidia-kernel-module-source-580.95.05-kernel6.18.patch ) pkg_setup() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.11.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.11.ebuild index 9f02b002dfa2..b573563dc2b6 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.11.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.94.11.ebuild @@ -101,6 +101,7 @@ QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch + "${FILESDIR}"/nvidia-kernel-module-source-580.95.05-kernel6.18.patch ) pkg_setup() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild index 9a47157f19c3..b3c27d82b45c 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.95.05.ebuild @@ -100,6 +100,7 @@ QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*" PATCHES=( "${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch "${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch + "${FILESDIR}"/nvidia-kernel-module-source-580.95.05-kernel6.18.patch ) pkg_setup() {
