commit: f49d65283ab9607c81ce93c73c33c61ada30cc99 Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org> AuthorDate: Tue Feb 17 15:54:18 2026 +0000 Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org> CommitDate: Tue Feb 17 16:02:05 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f49d6528
x11-drivers/nvidia-drivers: fix build with kernel 6.19.x for 580+590 ...when USE=kernel-open and CONFIG_HMM_MIRROR are set. Closes: https://bugs.gentoo.org/970010 Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org> ...ernel-module-source-580.126.09-kernel6.19.patch | 18 ++++ ...kernel-module-source-590.48.01-kernel6.19.patch | 99 ++++++++++++++++++++++ .../nvidia-drivers-580.126.09-r1.ebuild | 3 +- .../nvidia-drivers-580.126.09.ebuild | 3 +- .../nvidia-drivers-590.48.01-r1.ebuild | 9 +- 5 files changed, 123 insertions(+), 9 deletions(-) diff --git a/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.126.09-kernel6.19.patch b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.126.09-kernel6.19.patch new file mode 100644 index 000000000000..bab13eac3280 --- /dev/null +++ b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-580.126.09-kernel6.19.patch @@ -0,0 +1,18 @@ +https://bugs.gentoo.org/970010 +--- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c ++++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c +@@ -22,4 +22,5 @@ + *******************************************************************************/ + ++#include <linux/version.h> + #include "uvm_hmm.h" + +@@ -79,5 +80,7 @@ + // function will need to be revisited + // +-#if defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++#define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page, page_pgmap(page), 0); ++#elif defined(NV_ZONE_DEVICE_PAGE_INIT_HAS_ORDER_ARG) + #define ZONE_DEVICE_PAGE_INIT(page) zone_device_page_init(page, 0) + #else diff --git a/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-590.48.01-kernel6.19.patch b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-590.48.01-kernel6.19.patch new file mode 100644 index 000000000000..0b48d877323c --- /dev/null +++ b/x11-drivers/nvidia-drivers/files/nvidia-kernel-module-source-590.48.01-kernel6.19.patch @@ -0,0 +1,99 @@ +https://bugs.gentoo.org/970010 +--- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c ++++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_hmm.c +@@ -57,4 +57,5 @@ + #include <linux/memremap.h> + #include <linux/wait.h> ++#include <linux/version.h> + + #include "uvm_common.h" +@@ -2141,5 +2142,9 @@ + UVM_ASSERT(!page_count(dpage)); + UVM_ASSERT(!dpage->zone_device_data); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++ zone_device_page_init(dpage, page_pgmap(dpage), 0); ++#else + zone_device_page_init(dpage); ++#endif + dpage->zone_device_data = gpu_chunk; + atomic64_inc(&va_block->hmm.va_space->hmm.allocated_page_count); +--- a/kernel-module-source/kernel-open/nvidia-uvm/uvm_pmm_gpu.c ++++ b/kernel-module-source/kernel-open/nvidia-uvm/uvm_pmm_gpu.c +@@ -178,4 +178,6 @@ + #include "uvm_linux.h" + ++#include <linux/version.h> ++ + #if defined(CONFIG_PCI_P2PDMA) && defined(NV_STRUCT_PAGE_HAS_ZONE_DEVICE_DATA) + #include <linux/pci-p2pdma.h> +@@ -3000,6 +3002,12 @@ + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++static void devmem_folio_free(struct folio *folio) ++{ ++ struct page *page = &folio->page; ++#else + static void devmem_page_free(struct page *page) + { ++#endif + uvm_gpu_chunk_t *chunk = uvm_pmm_devmem_page_to_chunk(page); + uvm_gpu_t *gpu = uvm_gpu_chunk_get_gpu(chunk); +@@ -3061,5 +3069,9 @@ + static const struct dev_pagemap_ops uvm_pmm_devmem_ops = + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++ .folio_free = devmem_folio_free, ++#else + .page_free = devmem_page_free, ++#endif + .migrate_to_ram = devmem_fault_entry, + }; +@@ -3149,6 +3161,12 @@ + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++static void device_p2p_folio_free(struct folio *folio) ++{ ++ struct page *page = &folio->page; ++#else + static void device_p2p_page_free(struct page *page) + { ++#endif + uvm_device_p2p_mem_t *p2p_mem = page->zone_device_data; + +@@ -3159,12 +3177,24 @@ + + #if UVM_CDMM_PAGES_SUPPORTED() ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++static void device_coherent_folio_free(struct folio *folio) ++{ ++ device_p2p_folio_free(folio); ++} ++#else + static void device_coherent_page_free(struct page *page) + { + device_p2p_page_free(page); + } ++#endif + + static const struct dev_pagemap_ops uvm_device_coherent_pgmap_ops = + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++ .folio_free = device_coherent_folio_free, ++#else + .page_free = device_coherent_page_free, ++#endif + }; + +@@ -3303,5 +3333,9 @@ + static const struct dev_pagemap_ops uvm_device_p2p_pgmap_ops = + { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 19, 0) ++ .folio_free = device_p2p_folio_free, ++#else + .page_free = device_p2p_page_free, ++#endif + }; + diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild index 3eda0eabc3f5..475001d60a86 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09-r1.ebuild @@ -7,7 +7,7 @@ MODULES_OPTIONAL_IUSE=+modules inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.18 +MODULES_KERNEL_MAX=6.19 NV_URI="https://download.nvidia.com/XFree86/" DESCRIPTION="NVIDIA Accelerated Graphics Driver" @@ -99,6 +99,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-${PV}-kernel6.19.patch ) pkg_setup() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild index d79aa3219282..d4e71fe8b01d 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-580.126.09.ebuild @@ -7,7 +7,7 @@ MODULES_OPTIONAL_IUSE=+modules inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -MODULES_KERNEL_MAX=6.18 +MODULES_KERNEL_MAX=6.19 NV_URI="https://download.nvidia.com/XFree86/" DESCRIPTION="NVIDIA Accelerated Graphics Driver" @@ -96,6 +96,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-${PV}-kernel6.19.patch ) pkg_setup() { diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild index 12d11204868b..2671c6b84b54 100644 --- a/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-590.48.01-r1.ebuild @@ -7,13 +7,7 @@ MODULES_OPTIONAL_IUSE=+modules inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1 inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info -# note: *can* build with 6.19 but it depends on the kernel configs, notably -# (at least) CONFIG_HMM_MIRROR needs to *not* be set -- recommend to stick to -# <=6.18.x until the next version nonetheless as NVIDIA is aware and has a fix -# pending (we do not intend to patch this downstream) -# https://github.com/NVIDIA/open-gpu-kernel-modules/issues/1021 -# https://github.com/NVIDIA/open-gpu-kernel-modules/pull/1015 -MODULES_KERNEL_MAX=6.18 +MODULES_KERNEL_MAX=6.19 NV_URI="https://download.nvidia.com/XFree86/" DESCRIPTION="NVIDIA Accelerated Graphics Driver" @@ -109,6 +103,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-${PV}-kernel6.19.patch ) pkg_setup() {
