Bug#1148493: nvidia-graphics-drivers-tesla: dkms ftbfs due to kernel 7
Paul Tagliamonte
paultag at debian.org
Mon Sep 28 15:56:46 BST 2026
Package: nvidia-graphics-drivers-tesla-550
Severity: important
X-Debbugs-Cc: paultag at debian.org
Tags: patch
thanks
I was wondering why my dkms yolo-patch didn't match what i submitted
to the tesla src package, and I realized that the 550 version was split
into its own src package.
attached is a debdiff for that src package too. same caviats apply, and
same patches for the most part.
paultag
--
⢀⣴⠾⠻⢶⣦⠀ Paul Tagliamonte <paultag>
⣾⠁⢠⠒⠀⣿⡁ https://people.debian.org/~paultag | https://pault.ag/
⢿⡄⠘⠷⠚⠋ Debian, the universal operating system.
⠈⠳⣄⠀⠀ 4096R / FEF2 EB20 16E6 A856 B98C E820 2DCD 6B5D E858 ADF3
-------------- next part --------------
diff -Nru nvidia-graphics-drivers-tesla-550-550.54.15/debian/changelog nvidia-graphics-drivers-tesla-550-550.54.15/debian/changelog
--- nvidia-graphics-drivers-tesla-550-550.54.15/debian/changelog 2026-03-11 00:36:02.000000000 -0400
+++ nvidia-graphics-drivers-tesla-550-550.54.15/debian/changelog 2026-09-28 10:30:43.000000000 -0400
@@ -1,3 +1,10 @@
+nvidia-graphics-drivers-tesla-550 (550.54.15-4.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Port patches
+
+ -- Paul Tagliamonte <paultag at debian.org> Mon, 28 Sep 2026 10:30:43 -0400
+
nvidia-graphics-drivers-tesla-550 (550.54.15-4) unstable; urgency=medium
* Backport drm_print.h changes from 570.211.01, for_each_*_*_in_state and
diff -Nru nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0084-backport-vma-locking-changes-from-595.44.03.patch nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0084-backport-vma-locking-changes-from-595.44.03.patch
--- nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0084-backport-vma-locking-changes-from-595.44.03.patch 1969-12-31 19:00:00.000000000 -0500
+++ nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0084-backport-vma-locking-changes-from-595.44.03.patch 2026-09-28 10:30:43.000000000 -0400
@@ -0,0 +1,125 @@
+From 0000000000000000000000000000000000000001 Mon Sep 17 00:00:00 2001
+From: Dominique Belhachemi <domibel at debian.org>
+Date: Sun, 07 Jun 2026 10:50:36 -0400
+Subject: [PATCH] backport vma locking changes from 595.44.03
+
+Kernel 7.0 renamed VMA_LOCK_OFFSET to VM_REFCNT_EXCLUDE_READERS_FLAG
+and dropped the mm_lock_seq argument from __is_vma_write_locked().
+
+Backported from open-gpu-kernel-modules 595.44.03:
+ https://github.com/NVIDIA/open-gpu-kernel-modules/commit/667aaff6
+
+Refreshed patch on 2026-09-21 for the tesla driver (paultag at debian.org)
+
+--- a/common/inc/nv-mm.h
++++ b/common/inc/nv-mm.h
+@@ -326,6 +326,17 @@ static inline void nv_vma_flags_clear_word(struct vm_area_struct *vma, unsigned
+ ACCESS_PRIVATE(vma, __vm_flags) &= ~flags;
+ #endif
+ }
++
++static inline int nv_is_vma_write_locked(struct vm_area_struct *vma,
++ unsigned int *mm_lock_seq)
++{
++#if defined(NV_IS_VMA_WRITE_LOCKED_HAS_MM_LOCK_SEQ_ARG)
++ return __is_vma_write_locked(vma, mm_lock_seq);
++#else
++ *mm_lock_seq = __vma_raw_mm_seqnum(vma);
++ return __is_vma_write_locked(vma);
++#endif
++}
+ #endif // !NV_CAN_CALL_VMA_START_WRITE
+
+ static inline void nv_vm_flags_set(struct vm_area_struct *vma, vm_flags_t flags)
+--- a/conftest.sh
++++ b/conftest.sh
+@@ -907,6 +907,26 @@ compile_test() {
+ compile_check_conftest "$CODE" "NV_VM_FAULT_HAS_ADDRESS" "" "types"
+ ;;
+
++ is_vma_write_locked_has_mm_lock_seq_arg)
++ #
++ # Determine if __is_vma_write_locked() takes only a single
++ # 'struct vm_area_struct *' argument.
++ #
++ # Removed the 'unsigned int *mm_lock_seq' parameter by commit
++ # 22f7639f2f03 ("mm/vma: improve and document
++ # __is_vma_write_locked()") in v7.0-rc1.
++ #
++ CODE="
++ #include <linux/mm.h>
++ #include <linux/mmap_lock.h>
++ int conftest_is_vma_write_locked_has_mm_lock_seq_arg(struct vm_area_struct *vma) {
++ unsigned int mm_lock_seq;
++ return __is_vma_write_locked(vma, &mm_lock_seq);
++ }"
++
++ compile_check_conftest "$CODE" "NV_IS_VMA_WRITE_LOCKED_HAS_MM_LOCK_SEQ_ARG" "" "types"
++ ;;
++
+ kmem_cache_has_kobj_remove_work)
+ #
+ # Determine if the 'kmem_cache' structure has 'kobj_remove_work'.
+--- a/nvidia/nv-mmap.c
++++ b/nvidia/nv-mmap.c
+@@ -834,15 +834,21 @@ void NV_API_CALL nv_set_safe_to_mmap_locked(
+ }
+
+ #if !NV_CAN_CALL_VMA_START_WRITE
++#if defined(VM_REFCNT_EXCLUDE_READERS_FLAG)
++#define NV_VMA_LOCK_OFFSET VM_REFCNT_EXCLUDE_READERS_FLAG
++#else
++#define NV_VMA_LOCK_OFFSET VMA_LOCK_OFFSET
++#endif
++
+ static NvBool nv_vma_enter_locked(struct vm_area_struct *vma, NvBool detaching)
+ {
+- NvU32 tgt_refcnt = VMA_LOCK_OFFSET;
++ NvU32 tgt_refcnt = NV_VMA_LOCK_OFFSET;
+ NvBool interrupted = NV_FALSE;
+ if (!detaching)
+ {
+ tgt_refcnt++;
+ }
+- if (!refcount_add_not_zero(VMA_LOCK_OFFSET, &vma->vm_refcnt))
++ if (!refcount_add_not_zero(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt))
+ {
+ return NV_FALSE;
+ }
+@@ -872,7 +878,7 @@ static NvBool nv_vma_enter_locked(struct vm_area_struct *vma, NvBool detaching)
+ if (interrupted)
+ {
+ // Clean up on error: release refcount and dep_map
+- refcount_sub_and_test(VMA_LOCK_OFFSET, &vma->vm_refcnt);
++ refcount_sub_and_test(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt);
+ rwsem_release(&vma->vmlock_dep_map, _RET_IP_);
+ return NV_FALSE;
+ }
+@@ -888,7 +894,7 @@ void nv_vma_start_write(struct vm_area_struct *vma)
+ {
+ NvU32 mm_lock_seq;
+ NvBool locked;
+- if (__is_vma_write_locked(vma, &mm_lock_seq))
++ if (nv_is_vma_write_locked(vma, &mm_lock_seq))
+ return;
+
+ locked = nv_vma_enter_locked(vma, NV_FALSE);
+@@ -897,7 +903,7 @@ void nv_vma_start_write(struct vm_area_struct *vma)
+ if (locked)
+ {
+ NvBool detached;
+- detached = refcount_sub_and_test(VMA_LOCK_OFFSET, &vma->vm_refcnt);
++ detached = refcount_sub_and_test(NV_VMA_LOCK_OFFSET, &vma->vm_refcnt);
+ rwsem_release(&vma->vmlock_dep_map, _RET_IP_);
+ WARN_ON_ONCE(detached);
+ }
+--- a/nvidia/nvidia.Kbuild
++++ b/nvidia/nvidia.Kbuild
+@@ -241,6 +241,7 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += dma_ops
+ NV_CONFTEST_TYPE_COMPILE_TESTS += swiotlb_dma_ops
+ NV_CONFTEST_TYPE_COMPILE_TESTS += noncoherent_swiotlb_dma_ops
+ NV_CONFTEST_TYPE_COMPILE_TESTS += vm_fault_has_address
++NV_CONFTEST_TYPE_COMPILE_TESTS += is_vma_write_locked_has_mm_lock_seq_arg
+ NV_CONFTEST_TYPE_COMPILE_TESTS += vm_insert_pfn_prot
+ NV_CONFTEST_TYPE_COMPILE_TESTS += vmf_insert_pfn_prot
+ NV_CONFTEST_TYPE_COMPILE_TESTS += vm_ops_fault_removed_vma_arg
diff -Nru nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0085-fix-dma-fence-and-pahole-awk-shim-for-linux-7.0.patch nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0085-fix-dma-fence-and-pahole-awk-shim-for-linux-7.0.patch
--- nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0085-fix-dma-fence-and-pahole-awk-shim-for-linux-7.0.patch 1969-12-31 19:00:00.000000000 -0500
+++ nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0085-fix-dma-fence-and-pahole-awk-shim-for-linux-7.0.patch 2026-09-28 10:30:43.000000000 -0400
@@ -0,0 +1,53 @@
+From 0000000000000000000000000000000000000002 Mon Sep 17 00:00:00 2001
+From: Dominique Belhachemi <domibel at debian.org>
+Date: Sun, 07 Jun 2026 10:50:36 -0400
+Subject: [PATCH] fix dma-fence void return and PAHOLE awk shim for Linux 7.0
+
+Kernel 7.0 changed dma_fence_signal() and dma_fence_signal_locked() from
+int to void.
+
+Kernel 7.0 replaced scripts/pahole-flags.sh with scripts/Makefile.btf
+and a new gen-btf.sh that invokes $PAHOLE directly.
+Maybe add it to 0062-Support-BTF-generation-for-non-release-builds.patch
+---
+--- a/Makefile 2026-06-06 15:22:14.734665167 -0400
++++ b/Makefile 2026-06-06 15:34:42.199977198 -0400
+@@ -95,6 +95,9 @@
+ # If scripts/pahole-flags.sh is not present in the kernel tree, add PAHOLE and
+ # PAHOLE_AWK_PROGRAM assignments to PAHOLE_VARIABLES; otherwise assign the
+ # empty string to PAHOLE_VARIABLES.
++ # Also check for scripts/Makefile.btf, which replaces pahole-flags.sh in 7.0+.
++ NV_KERNEL_PAHOLE_SCRIPT := $(or $(wildcard $(KERNEL_SOURCES)/scripts/pahole-flags.sh), \
++ $(wildcard $(KERNEL_SOURCES)/scripts/Makefile.btf))
+- PAHOLE_VARIABLES=$(if $(wildcard $(KERNEL_SOURCES)/scripts/pahole-flags.sh),,"PAHOLE=$(AWK) '$(PAHOLE_AWK_PROGRAM)'")
++ PAHOLE_VARIABLES = $(if $(NV_KERNEL_PAHOLE_SCRIPT),,"PAHOLE=$(AWK) '$(PAHOLE_AWK_PROGRAM)'")
+
+ ifndef ARCH
+--- a/nvidia-drm/nvidia-dma-fence-helper.h 2025-04-08 08:08:05.000000000 -0400
++++ b/nvidia-drm/nvidia-dma-fence-helper.h 2026-06-06 15:34:42.196800051 -0400
+@@ -93,19 +93,19 @@
+ #endif
+ }
+
+-static inline int nv_dma_fence_signal(nv_dma_fence_t *fence) {
++static inline void nv_dma_fence_signal(nv_dma_fence_t *fence) {
+ #if defined(NV_LINUX_FENCE_H_PRESENT)
+- return fence_signal(fence);
++ fence_signal(fence);
+ #else
+- return dma_fence_signal(fence);
++ dma_fence_signal(fence);
+ #endif
+ }
+
+-static inline int nv_dma_fence_signal_locked(nv_dma_fence_t *fence) {
++static inline void nv_dma_fence_signal_locked(nv_dma_fence_t *fence) {
+ #if defined(NV_LINUX_FENCE_H_PRESENT)
+- return fence_signal_locked(fence);
++ fence_signal_locked(fence);
+ #else
+- return dma_fence_signal_locked(fence);
++ dma_fence_signal_locked(fence);
+ #endif
+ }
+
diff -Nru nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0086-add-MODULE_DESCRIPTION.patch nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0086-add-MODULE_DESCRIPTION.patch
--- nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0086-add-MODULE_DESCRIPTION.patch 1969-12-31 19:00:00.000000000 -0500
+++ nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0086-add-MODULE_DESCRIPTION.patch 2026-09-28 10:30:43.000000000 -0400
@@ -0,0 +1,50 @@
+From 0000000000000000000000000000000000000003 Mon Sep 17 00:00:00 2001
+From: Dominique Belhachemi <domibel at debian.org>
+Date: Sun, 07 Jun 2026 10:50:36 -0400
+Subject: [PATCH] add MODULE_DESCRIPTION to all kernel modules
+
+Forky uses CONFIG_MODULE_ALLOW_MISSING_MODULE_DESCRIPTION=n,
+causing modules without MODULE_DESCRIPTION to fail to load.
+
+Strings taken verbatim from open-gpu-kernel-modules 595.44.06:
+ https://github.com/NVIDIA/open-gpu-kernel-modules/commit/07dedd6f
+---
+--- a/nvidia/nv.c 2026-06-06 15:22:14.717161978 -0400
++++ b/nvidia/nv.c 2026-06-06 15:34:18.279603577 -0400
+@@ -113,6 +113,7 @@
+ #define RM_UNHANDLED_TIMEOUT_US 100000
+
+ MODULE_LICENSE("NVIDIA");
++MODULE_DESCRIPTION("NVIDIA core GPU kernel module");
+
+ MODULE_INFO(supported, "external");
+ MODULE_VERSION(NV_VERSION_STRING);
+--- a/nvidia-drm/nvidia-drm-linux.c 2025-04-08 08:08:01.000000000 -0400
++++ b/nvidia-drm/nvidia-drm-linux.c 2026-06-06 15:34:18.281194502 -0400
+@@ -61,6 +61,7 @@
+ module_exit(nv_linux_drm_exit);
+
+ MODULE_LICENSE("MIT");
++ MODULE_DESCRIPTION("NVIDIA DRM kernel module");
+
+ MODULE_INFO(supported, "external");
+ MODULE_VERSION(NV_VERSION_STRING);
+--- a/nvidia-modeset/nvidia-modeset-linux.c 2026-06-06 15:22:14.716848194 -0400
++++ b/nvidia-modeset/nvidia-modeset-linux.c 2026-06-06 15:34:18.282202308 -0400
+@@ -1843,6 +1843,7 @@
+ module_exit(nvkms_exit);
+
+ MODULE_LICENSE("NVIDIA");
++ MODULE_DESCRIPTION("NVIDIA modeset kernel module");
+
+ MODULE_INFO(supported, "external");
+ MODULE_VERSION(NV_VERSION_STRING);
+--- a/nvidia-uvm/uvm.c 2025-04-08 09:05:04.000000000 -0400
++++ b/nvidia-uvm/uvm.c 2026-06-06 15:34:18.283479730 -0400
+@@ -1193,5 +1193,6 @@
+ module_exit(uvm_exit_entry);
+
+ MODULE_LICENSE("Dual MIT/GPL");
++MODULE_DESCRIPTION("NVIDIA Unified Virtual Memory kernel module");
+ MODULE_INFO(supported, "external");
+ MODULE_VERSION(NV_VERSION_STRING);
diff -Nru nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0086-strncpy-to-strscpy.patch nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0086-strncpy-to-strscpy.patch
--- nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0086-strncpy-to-strscpy.patch 1969-12-31 19:00:00.000000000 -0500
+++ nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0086-strncpy-to-strscpy.patch 2026-09-28 10:30:43.000000000 -0400
@@ -0,0 +1,55 @@
+--- a/nvidia/os-interface.c
++++ b/nvidia/os-interface.c
+@@ -741,7 +741,7 @@ NvU32 NV_API_CALL os_get_current_process(void)
+ void NV_API_CALL os_get_current_process_name(char *buf, NvU32 len)
+ {
+ task_lock(current);
+- strncpy(buf, current->comm, len - 1);
++ strscpy(buf, current->comm, len - 1);
+ buf[len - 1] = '\0';
+ task_unlock(current);
+ }
+--- a/nvidia-modeset/nvidia-modeset-linux.c
++++ b/nvidia-modeset/nvidia-modeset-linux.c
+@@ -292,7 +292,8 @@ int nvkms_strcmp(const char *s1, const char *s2)
+
+ char* nvkms_strncpy(char *dest, const char *src, size_t n)
+ {
+- return strncpy(dest, src, n);
++ strscpy(dest, src, n);
++ return dest;
+ }
+
+ void nvkms_usleep(NvU64 usec)
+--- a/nvidia-uvm/uvm_pmm_gpu.c
++++ b/nvidia-uvm/uvm_pmm_gpu.c
+@@ -2987,7 +2987,7 @@ static NV_STATUS init_chunk_split_cache_level(uvm_pmm_gpu_t *pmm, size_t level)
+ size_t size;
+ size_t align;
+ if (level == 0) {
+- strncpy(chunk_split_cache[level].name, "uvm_gpu_chunk_t", sizeof(chunk_split_cache[level].name) - 1);
++ strscpy(chunk_split_cache[level].name, "uvm_gpu_chunk_t", sizeof(chunk_split_cache[level].name) - 1);
+ size = sizeof(uvm_gpu_chunk_t);
+ align = __alignof__(uvm_gpu_chunk_t);
+ } else {
+--- a/nvidia/linux_nvswitch.c
++++ b/nvidia/linux_nvswitch.c
+@@ -2025,7 +2025,7 @@ nvswitch_os_read_registry_dword
+ return -NVL_ERR_GENERIC;
+ }
+
+- strncpy(regkey_val, regkey_val_start, regkey_val_len);
++ strscpy(regkey_val, regkey_val_start, regkey_val_len);
+ regkey_val[regkey_val_len] = '\0';
+
+ if (nvswitch_os_strtouint(regkey_val, data) != 0)
+@@ -2380,7 +2380,8 @@ nvswitch_os_strncpy
+ NvLength length
+ )
+ {
+- return strncpy(dest, src, length);
++ strscpy(dest, src, length);
++ return dest;
+ }
+
+ int
diff -Nru nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0088-drm-atomic.patch nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0088-drm-atomic.patch
--- nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0088-drm-atomic.patch 1969-12-31 19:00:00.000000000 -0500
+++ nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/0088-drm-atomic.patch 2026-09-28 10:30:43.000000000 -0400
@@ -0,0 +1,130 @@
+diff --git a/conftest.sh b/conftest.sh
+index ef1adc3..26599aa 100644
+--- a/conftest.sh
++++ b/conftest.sh
+@@ -1988,6 +1988,21 @@ compile_test() {
+ fi
+ ;;
+
++ drm_atomic_commit)
++ #
++ # DRM atomic transactions were renamed from drm_atomic_state to
++ # drm_atomic_commit in Linux 7.2. Detect the new object instead of
++ # relying on a kernel version, since distributions may backport it.
++ #
++ CODE="
++ #include <drm/drm_atomic.h>
++ void conftest_drm_atomic_commit(void) {
++ sizeof(struct drm_atomic_commit);
++ }"
++
++ compile_check_conftest "$CODE" "NV_DRM_ATOMIC_COMMIT_PRESENT" "" "generic"
++ ;;
++
+ drm_bus_present)
+ #
+ # Determine if the 'struct drm_bus' type is present.
+diff --git a/nvidia-drm/nvidia-drm-conftest.h b/nvidia-drm/nvidia-drm-conftest.h
+index d327460..8b117be 100644
+--- a/nvidia-drm/nvidia-drm-conftest.h
++++ b/nvidia-drm/nvidia-drm-conftest.h
+@@ -26,6 +26,19 @@
+ #include "conftest.h"
+ #include "nvtypes.h"
+
++/* Linux 7.2 renamed the DRM atomic transaction object and its helpers. */
++#if defined(NV_DRM_ATOMIC_COMMIT_PRESENT)
++#define drm_atomic_state drm_atomic_commit
++#define drm_atomic_state_alloc drm_atomic_commit_alloc
++#define drm_atomic_state_clear drm_atomic_commit_clear
++#define drm_atomic_state_default_clear drm_atomic_commit_default_clear
++#define drm_atomic_state_default_release drm_atomic_commit_default_release
++#define drm_atomic_state_free drm_atomic_commit_put
++#define drm_atomic_state_get drm_atomic_commit_get
++#define drm_atomic_state_init drm_atomic_commit_init
++#define drm_atomic_state_put drm_atomic_commit_put
++#endif
++
+ /*
+ * NOTE: This file is expected to get included at the top before including any
+ * of linux/drm headers.
+diff --git a/nvidia-drm/nvidia-drm-crtc.c b/nvidia-drm/nvidia-drm-crtc.c
+index 2dfd3e4..2009440 100644
+--- a/nvidia-drm/nvidia-drm-crtc.c
++++ b/nvidia-drm/nvidia-drm-crtc.c
+@@ -585,7 +585,8 @@ static int __nv_drm_cursor_atomic_check(struct drm_plane *plane,
+ return 0;
+ }
+
+-#if defined(NV_DRM_PLANE_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG)
++#if defined(NV_DRM_PLANE_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG) || \
++ defined(NV_DRM_ATOMIC_COMMIT_PRESENT)
+ static int nv_drm_plane_atomic_check(struct drm_plane *plane,
+ struct drm_atomic_state *state)
+ #else
+@@ -594,7 +595,8 @@ static int nv_drm_plane_atomic_check(struct drm_plane *plane,
+ #endif
+ {
+ struct nv_drm_plane *nv_plane = to_nv_plane(plane);
+-#if defined(NV_DRM_PLANE_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG)
++#if defined(NV_DRM_PLANE_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG) || \
++ defined(NV_DRM_ATOMIC_COMMIT_PRESENT)
+ struct drm_plane_state *plane_state =
+ drm_atomic_get_new_plane_state(state, plane);
+ #endif
+@@ -1170,7 +1172,8 @@ fail:
+ * the 'nv_drm_crtc_state::req_config', that is fine because 'nv_drm_crtc_state'
+ * will be discarded if ->atomic_check() fails.
+ */
+-#if defined(NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG)
++#if defined(NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG) || \
++ defined(NV_DRM_ATOMIC_COMMIT_PRESENT)
+ static int nv_drm_crtc_atomic_check(struct drm_crtc *crtc,
+ struct drm_atomic_state *state)
+ #else
+@@ -1178,7 +1181,8 @@ static int nv_drm_crtc_atomic_check(struct drm_crtc *crtc,
+ struct drm_crtc_state *crtc_state)
+ #endif
+ {
+-#if defined(NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG)
++#if defined(NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG) || \
++ defined(NV_DRM_ATOMIC_COMMIT_PRESENT)
+ struct drm_crtc_state *crtc_state =
+ drm_atomic_get_new_crtc_state(state, crtc);
+ #endif
+diff --git a/nvidia-drm/nvidia-drm-modeset.c b/nvidia-drm/nvidia-drm-modeset.c
+index c6488cd..58c9e8c 100644
+--- a/nvidia-drm/nvidia-drm-modeset.c
++++ b/nvidia-drm/nvidia-drm-modeset.c
+@@ -463,7 +463,8 @@ int nv_drm_atomic_commit(struct drm_device *dev,
+ }
+ }
+
+-#if defined(NV_DRM_ATOMIC_HELPER_SWAP_STATE_HAS_STALL_ARG)
++#if defined(NV_DRM_ATOMIC_HELPER_SWAP_STATE_HAS_STALL_ARG) || \
++ defined(NV_DRM_ATOMIC_COMMIT_PRESENT)
+
+ /*
+ * nv_drm_atomic_commit_internal()
+@@ -475,7 +476,8 @@ int nv_drm_atomic_commit(struct drm_device *dev,
+ * expected.
+ */
+
+-#if defined(NV_DRM_ATOMIC_HELPER_SWAP_STATE_RETURN_INT)
++#if defined(NV_DRM_ATOMIC_HELPER_SWAP_STATE_RETURN_INT) || \
++ defined(NV_DRM_ATOMIC_COMMIT_PRESENT)
+ ret = drm_atomic_helper_swap_state(state, false /* stall */);
+ if (WARN_ON(ret != 0)) {
+ return ret;
+diff --git a/nvidia-drm/nvidia-drm-sources.mk b/nvidia-drm/nvidia-drm-sources.mk
+index 35905e9..1684e91 100644
+--- a/nvidia-drm/nvidia-drm-sources.mk
++++ b/nvidia-drm/nvidia-drm-sources.mk
+@@ -32,6 +32,7 @@ NVIDIA_DRM_SOURCES += nvidia-drm/nvidia-drm-os-interface.c
+
+ NV_CONFTEST_GENERIC_COMPILE_TESTS += drm_available
+ NV_CONFTEST_GENERIC_COMPILE_TESTS += drm_atomic_available
++NV_CONFTEST_GENERIC_COMPILE_TESTS += drm_atomic_commit
+ 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
diff -Nru nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/series nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/series
--- nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/series 2026-03-11 00:36:02.000000000 -0400
+++ nvidia-graphics-drivers-tesla-550-550.54.15/debian/patches/module/series 2026-09-28 10:30:43.000000000 -0400
@@ -47,6 +47,11 @@
0081-support-fallback-for-for_each_-_plane_in_state.patch
0082-backport-for_each_-_crtc_in_state-changes-from-580.1.patch
0083-support-fallback-for-for_each_-_crtc_in_state.patch
+0084-backport-vma-locking-changes-from-595.44.03.patch
+0085-fix-dma-fence-and-pahole-awk-shim-for-linux-7.0.patch
+0086-add-MODULE_DESCRIPTION.patch
+0086-strncpy-to-strscpy.patch
+0088-drm-atomic.patch
# build system updates
conftest-verbose.patch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-nvidia-devel/attachments/20260928/468e5086/attachment-0007.sig>
More information about the pkg-nvidia-devel
mailing list