Public bug reported:
nvidia-dkms-590-open 590.48.01 fails to build the NVIDIA kernel modules
against the Linux 7.0 HWE kernel (7.0.0-28-generic) on Ubuntu 24.04.4
LTS due to an incompatible dev_pagemap_ops API in nvidia-
uvm/uvm_pmm_gpu.c.
Environment
┌──────────────┬─────────────────────────────────────────────────────────┐
│ Item │ Value │
├──────────────┼─────────────────────────────────────────────────────────┤
│ Ubuntu │ Ubuntu 24.04.4 LTS (Noble) │
│ release │ │
├──────────────┼─────────────────────────────────────────────────────────┤
│ Running │ 6.17.0-1028-oem │
│ kernel │ │
├──────────────┼─────────────────────────────────────────────────────────┤
│ Failing │ 7.0.0-28-generic (linux-image-generic-hwe-24.04) │
│ kernel │ │
├──────────────┼─────────────────────────────────────────────────────────┤
│ Package │ nvidia-dkms-590-open 590.48.01-0ubuntu0.24.04.4 │
├──────────────┼─────────────────────────────────────────────────────────┤
│ Source │ nvidia-graphics-drivers-590 │
│ package │ │
├──────────────┼─────────────────────────────────────────────────────────┤
│ GPU │ NVIDIA GeForce RTX 4050 Max-Q / Mobile (AD107M, PCI │
│ │ 10de:28e1) │
├──────────────┼─────────────────────────────────────────────────────────┤
│ System │ Lenovo 83JC (OEM laptop) │
├──────────────┼─────────────────────────────────────────────────────────┤
│ Driver │ Open kernel module (nvidia-driver-590-open) │
│ variant │ │
└──────────────┴─────────────────────────────────────────────────────────┘
What I expected
After installing/upgrading nvidia-dkms-590-open and the HWE kernel
(linux-image-7.0.0-28-generic), DKMS should successfully compile and
install the NVIDIA kernel modules for all installed kernels, including
7.0.0-28-generic.
What happened instead
DKMS fails to build nvidia/590.48.01 for kernel 7.0.0-28-generic. The
build stops while compiling nvidia-uvm/uvm_pmm_gpu.c because the driver
still uses the removed dev_pagemap_ops.page_free callback. Linux 7.0
renamed this to folio_free and changed the function signature from void
(*)(struct page *) to void (*)(struct folio *).
dkms status shows the module as only added (not installed) for
7.0.0-28-generic:
nvidia/590.48.01: added
The driver does build and work on the OEM kernel 6.17.0-1028-oem, where
page_free still exists in include/linux/memremap.h.
Steps to reproduce
1. On Ubuntu 24.04.4 LTS, install the HWE stack and NVIDIA 590 open
driver:
sudo apt install linux-image-generic-hwe-24.04
linux-headers-generic-hwe-24.04 nvidia-driver-590-open
2. Trigger a DKMS rebuild for the 7.0 kernel:
sudo dkms install nvidia/590.48.01 -k 7.0.0-28-generic
3. Build fails with compile errors in nvidia-uvm/uvm_pmm_gpu.c.
Relevant build log excerpt
From /var/lib/dkms/nvidia/590.48.01/build/make.log:
DKMS make.log for nvidia-590.48.01 for kernel 7.0.0-28-generic (x86_64)
nvidia-uvm/uvm_pmm_gpu.c:3063:6: error: 'const struct dev_pagemap_ops' has
no member named 'page_free'
3063 | .page_free = devmem_page_free,
| ^~~~~~~~~
nvidia-uvm/uvm_pmm_gpu.c:3063:18: error: initialization of 'void
(*)(struct folio *)' from incompatible pointer type 'void (*)(struct page
*)' [-Werror=incompatible-pointer-types]
3063 | .page_free = devmem_page_free,
| ^~~~~~~~~~~~~~~~
nvidia-uvm/uvm_pmm_gpu.c:3063:18: note: (near initialization for
'uvm_pmm_devmem_ops.folio_free')
nvidia-uvm/uvm_pmm_gpu.c:3168:6: error: 'const struct dev_pagemap_ops' has
no member named 'page_free'
nvidia-uvm/uvm_pmm_gpu.c:3305:6: error: 'const struct dev_pagemap_ops' has
no member named 'page_free'
make[4]: *** [.../scripts/Makefile.build:289: nvidia-uvm/uvm_pmm_gpu.o]
Error 1
make: *** [Makefile:138: modules] Error 2
Kernel API change
In linux-headers-7.0.0-28-generic, dev_pagemap_ops uses:
void (*folio_free)(struct folio *folio);
In linux-headers-6.17.0-1028-oem, it still uses:
void (*page_free)(struct page *page);
The NVIDIA 590.48.01 open-source UVM code has not been updated for this
Linux 7.0 API change.
Additional notes
• Build also reports: sh: 1: pahole: not found (warning only; not the
cause of failure).
• A newer package revision is available: 590.48.01-0ubuntu0.24.04.5 (not
yet tested on this system).
• On 6.17.0-1028-oem, nvidia-smi works (Driver Version 590.48.01), but
DKMS reports warnings about differences between built and installed
modules on several OEM kernels.
ProblemType: Package
DistroRelease: Ubuntu 24.04
Package: nvidia-dkms-590-open 590.48.01-0ubuntu0.24.04.4
ProcVersionSignature: Ubuntu 6.17.0-1028.28-oem 6.17.13
Uname: Linux 6.17.0-1028-oem x86_64
ApportVersion: 2.28.1-0ubuntu3.8
Architecture: amd64
CasperMD5CheckResult: pass
DKMSKernelVersion: 7.0.0-28-generic
Date: Sun Jul 19 13:23:50 2026
DuplicateSignature:
dkms:nvidia-dkms-590-open:590.48.01-0ubuntu0.24.04.4:nvidia-uvm/uvm_pmm_gpu.c:3063:6:
error: ‘const struct dev_pagemap_ops’ has no member named ‘page_free’
InstallationDate: Installed on 2025-12-21 (215 days ago)
InstallationMedia: Ubuntu 24.04.2 LTS "Noble Numbat" - Release amd64 (20250215)
PackageVersion: 590.48.01-0ubuntu0.24.04.4
Python3Details: /usr/bin/python3.12, Python 3.12.3, python3-minimal,
3.12.3-0ubuntu2.1
PythonDetails: /usr/bin/python3.12, Python 3.12.3, python-is-python3, 3.11.4-1
RelatedPackageVersions:
dpkg 1.22.6ubuntu6.6
apt 2.8.3
SourcePackage: nvidia-graphics-drivers-590
Title: nvidia-dkms-590-open 590.48.01-0ubuntu0.24.04.4: nvidia kernel module
failed to build
UpgradeStatus: No upgrade log present (probably fresh install)
** Affects: nvidia-graphics-drivers-590 (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-package need-duplicate-check noble
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2161794
Title:
nvidia-dkms-590-open 590.48.01 fails DKMS build on Linux 7.0 HWE
kernel
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-590/+bug/2161794/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs