(Actually attached, apologies)
-- ⢀⣴⠾⠻⢶⣦⠀ 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
diff -Nru nvidia-graphics-drivers-550.163.01/debian/changelog nvidia-graphics-drivers-550.163.01/debian/changelog --- nvidia-graphics-drivers-550.163.01/debian/changelog 2026-06-11 08:33:08.000000000 -0400 +++ nvidia-graphics-drivers-550.163.01/debian/changelog 2026-09-21 12:13:00.000000000 -0400 @@ -1,3 +1,10 @@ +nvidia-graphics-drivers (550.163.01-5.2) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Update more build failures against Linux 7.0 + + -- Paul Tagliamonte <[email protected]> Mon, 21 Sep 2026 12:13:00 -0400 + nvidia-graphics-drivers (550.163.01-5.1) unstable; urgency=medium * Non-maintainer upload. diff -Nru nvidia-graphics-drivers-550.163.01/debian/patches/module/0087-strncpy-to-strscpy.patch nvidia-graphics-drivers-550.163.01/debian/patches/module/0087-strncpy-to-strscpy.patch --- nvidia-graphics-drivers-550.163.01/debian/patches/module/0087-strncpy-to-strscpy.patch 1969-12-31 19:00:00.000000000 -0500 +++ nvidia-graphics-drivers-550.163.01/debian/patches/module/0087-strncpy-to-strscpy.patch 2026-09-21 12:00:09.000000000 -0400 @@ -0,0 +1,63 @@ +diff --git a/nvidia-modeset/nvidia-modeset-linux.c b/nvidia-modeset/nvidia-modeset-linux.c +index a5ecf35..7260124 100644 +--- a/nvidia-modeset/nvidia-modeset-linux.c ++++ b/nvidia-modeset/nvidia-modeset-linux.c +@@ -351,7 +351,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) +diff --git a/nvidia-uvm/uvm_pmm_gpu.c b/nvidia-uvm/uvm_pmm_gpu.c +index 922403a..892a28c 100644 +--- a/nvidia-uvm/uvm_pmm_gpu.c ++++ b/nvidia-uvm/uvm_pmm_gpu.c +@@ -3038,7 +3038,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 { +diff --git a/nvidia/linux_nvswitch.c b/nvidia/linux_nvswitch.c +index 40cb0d7..f5c1340 100644 +--- a/nvidia/linux_nvswitch.c ++++ b/nvidia/linux_nvswitch.c +@@ -2026,7 +2026,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) +@@ -2381,7 +2381,8 @@ nvswitch_os_strncpy + NvLength length + ) + { +- return strncpy(dest, src, length); ++ strscpy(dest, src, length); ++ return dest; + } + + int +diff --git a/nvidia/os-interface.c b/nvidia/os-interface.c +index 375a418..f2425bb 100644 +--- a/nvidia/os-interface.c ++++ b/nvidia/os-interface.c +@@ -750,7 +750,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); + } diff -Nru nvidia-graphics-drivers-550.163.01/debian/patches/module/0088-drm-atomic.patch nvidia-graphics-drivers-550.163.01/debian/patches/module/0088-drm-atomic.patch --- nvidia-graphics-drivers-550.163.01/debian/patches/module/0088-drm-atomic.patch 1969-12-31 19:00:00.000000000 -0500 +++ nvidia-graphics-drivers-550.163.01/debian/patches/module/0088-drm-atomic.patch 2026-09-21 12:12:11.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-550.163.01/debian/patches/module/series nvidia-graphics-drivers-550.163.01/debian/patches/module/series --- nvidia-graphics-drivers-550.163.01/debian/patches/module/series 2026-06-06 21:49:33.000000000 -0400 +++ nvidia-graphics-drivers-550.163.01/debian/patches/module/series 2026-09-21 12:12:47.000000000 -0400 @@ -37,6 +37,8 @@ 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 +0087-strncpy-to-strscpy.patch +0088-drm-atomic.patch # build system updates conftest-verbose.patch
diff -Nru nvidia-graphics-drivers-tesla-525.147.05/debian/changelog nvidia-graphics-drivers-tesla-525.147.05/debian/changelog --- nvidia-graphics-drivers-tesla-525.147.05/debian/changelog 2026-03-01 17:07:24.000000000 -0500 +++ nvidia-graphics-drivers-tesla-525.147.05/debian/changelog 2026-09-21 09:38:10.000000000 -0400 @@ -1,3 +1,10 @@ +nvidia-graphics-drivers-tesla (525.147.05-18.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Merge matches from src:nvidia-graphics-drivers for Linux 7. + + -- Paul Tagliamonte <[email protected]> Mon, 21 Sep 2026 09:38:10 -0400 + nvidia-graphics-drivers-tesla (525.147.05-18) unstable; urgency=medium * Backport drm_print.h changes from 570.211.01, for_each_*_*_in_state and diff -Nru nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0084-backport-vma-locking-changes-from-595.44.03.patch nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0084-backport-vma-locking-changes-from-595.44.03.patch --- nvidia-graphics-drivers-tesla-525.147.05/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-525.147.05/debian/patches/module/0084-backport-vma-locking-changes-from-595.44.03.patch 2026-09-21 09:38:10.000000000 -0400 @@ -0,0 +1,125 @@ +From 0000000000000000000000000000000000000001 Mon Sep 17 00:00:00 2001 +From: Dominique Belhachemi <[email protected]> +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 ([email protected]) + +--- 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-525.147.05/debian/patches/module/0085-fix-dma-fence-and-pahole-awk-shim-for-linux-7.0.patch nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0085-fix-dma-fence-and-pahole-awk-shim-for-linux-7.0.patch --- nvidia-graphics-drivers-tesla-525.147.05/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-525.147.05/debian/patches/module/0085-fix-dma-fence-and-pahole-awk-shim-for-linux-7.0.patch 2026-09-21 09:38:10.000000000 -0400 @@ -0,0 +1,19 @@ +diff --git a/nvidia-drm/nvidia-dma-fence-helper.h b/nvidia-drm/nvidia-dma-fence-helper.h +index a09ab76..efd34b3 100644 +--- a/nvidia-drm/nvidia-dma-fence-helper.h ++++ b/nvidia-drm/nvidia-dma-fence-helper.h +@@ -89,11 +89,11 @@ nv_dma_fence_default_wait(nv_dma_fence_t *fence, + #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 + } + diff -Nru nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0086-strncpy-to-strscpy.patch nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0086-strncpy-to-strscpy.patch --- nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0086-strncpy-to-strscpy.patch 1969-12-31 19:00:00.000000000 -0500 +++ nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0086-strncpy-to-strscpy.patch 2026-09-21 09:38:10.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-525.147.05/debian/patches/module/0087-drm-atomic-state.patch nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0087-drm-atomic-state.patch --- nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0087-drm-atomic-state.patch 1969-12-31 19:00:00.000000000 -0500 +++ nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0087-drm-atomic-state.patch 2026-09-21 09:38:10.000000000 -0400 @@ -0,0 +1,40 @@ +--- a/nvidia-drm/nvidia-drm-conftest.h ++++ b/nvidia-drm/nvidia-drm-conftest.h +@@ -61,4 +61,15 @@ + #undef NV_DRM_FENCE_AVAILABLE + #endif + ++/* ++ * Kernel commit 5164f7e7ff8e ("drm: Rename struct drm_atomic_state ++ * to drm_atomic_commit") renamed the struct and all associated functions. ++ */ ++#define drm_atomic_state drm_atomic_commit ++#define drm_atomic_state_alloc drm_atomic_commit_alloc ++#define drm_atomic_state_put drm_atomic_commit_put ++#define drm_atomic_state_init drm_atomic_commit_init ++#define drm_atomic_state_default_clear drm_atomic_commit_default_clear ++#define drm_atomic_state_default_release drm_atomic_commit_default_release ++ + #endif /* defined(__NVIDIA_DRM_CONFTEST_H__) */ +--- a/nvidia-drm/nvidia-drm-helper.c ++++ b/nvidia-drm/nvidia-drm-helper.c +@@ -186,7 +186,7 @@ free: + drm_atomic_state_put(state); + #else + if (ret != 0) { +- drm_atomic_state_free(state); ++ drm_atomic_state_default_release(state); + } else { + /* + * In case of success, drm_atomic_commit() takes care to cleanup and +--- a/nvidia-drm/nvidia-drm-modeset.c ++++ b/nvidia-drm/nvidia-drm-modeset.c +@@ -556,7 +556,7 @@ done: + * drops its reference after we return. + */ + #else +- drm_atomic_state_free(state); ++ nv_drm_atomic_state_free(state); + #endif + + return 0; diff -Nru nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0088-drm-atomic.patch nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0088-drm-atomic.patch --- nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0088-drm-atomic.patch 1969-12-31 19:00:00.000000000 -0500 +++ nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/0088-drm-atomic.patch 2026-09-21 09:38:10.000000000 -0400 @@ -0,0 +1,128 @@ +diff --git a/conftest.sh b/conftest.sh +index 3b01beb..aca8ef2 100644 +--- a/conftest.sh ++++ b/conftest.sh +@@ -4027,10 +4027,8 @@ compile_test() { + # + CODE=" + #include <drm/drm_atomic_helper.h> +- void conftest_drm_atomic_helper_swap_state_has_stall_arg( +- struct drm_atomic_state *state, +- bool stall) { +- (void)drm_atomic_helper_swap_state(state, stall); ++ void conftest_drm_atomic_helper_swap_state_has_stall_arg(void) { ++ (void)drm_atomic_helper_swap_state(NULL, false); + }" + + compile_check_conftest "$CODE" "NV_DRM_ATOMIC_HELPER_SWAP_STATE_HAS_STALL_ARG" | append_conftest "types" +@@ -4046,10 +4044,8 @@ compile_test() { + # + CODE=" + #include <drm/drm_atomic_helper.h> +- int conftest_drm_atomic_helper_swap_state_return_int( +- struct drm_atomic_state *state, +- bool stall) { +- return drm_atomic_helper_swap_state(state, stall); ++ int conftest_drm_atomic_helper_swap_state_return_int(void) { ++ return drm_atomic_helper_swap_state(NULL, false); + }" + + compile_check_conftest "$CODE" "NV_DRM_ATOMIC_HELPER_SWAP_STATE_RETURN_INT" | append_conftest "types" +@@ -5837,6 +5833,21 @@ compile_test() { + compile_check_conftest "$CODE" "NV_VMA_FLAGS_SET_WORD_PRESENT" "" "functions" + ;; + ++ drm_atomic_commit_struct_present) ++ # ++ # Determine whether struct drm_atomic_state has been renamed to ++ # struct drm_atomic_commit. ++ # ++ # Renamed by commit 5164f7e7ff8e ("drm: Rename struct ++ # drm_atomic_state to drm_atomic_commit") in v7.2. ++ # ++ CODE=" ++ #include <drm/drm_atomic.h> ++ struct drm_atomic_commit state;" ++ ++ compile_check_conftest "$CODE" "NV_DRM_ATOMIC_COMMIT_STRUCT_PRESENT" "" "types" ++ ;; ++ + drm_driver_has_dumb_destroy) + # + # Determine if the 'drm_driver' structure has a 'dumb_destroy' +diff --git a/nvidia-drm/nvidia-drm-conftest.h b/nvidia-drm/nvidia-drm-conftest.h +index 9a8c029..76a3816 100644 +--- a/nvidia-drm/nvidia-drm-conftest.h ++++ b/nvidia-drm/nvidia-drm-conftest.h +@@ -61,15 +61,14 @@ + #undef NV_DRM_FENCE_AVAILABLE + #endif + +-/* +- * Kernel commit 5164f7e7ff8e ("drm: Rename struct drm_atomic_state +- * to drm_atomic_commit") renamed the struct and all associated functions. +- */ ++/* Linux 7.2 renamed the atomic transaction object and its helpers. */ ++#if defined(NV_DRM_ATOMIC_COMMIT_STRUCT_PRESENT) + #define drm_atomic_state drm_atomic_commit + #define drm_atomic_state_alloc drm_atomic_commit_alloc + #define drm_atomic_state_put drm_atomic_commit_put + #define drm_atomic_state_init drm_atomic_commit_init + #define drm_atomic_state_default_clear drm_atomic_commit_default_clear + #define drm_atomic_state_default_release drm_atomic_commit_default_release ++#endif + + #endif /* defined(__NVIDIA_DRM_CONFTEST_H__) */ +diff --git a/nvidia-drm/nvidia-drm-crtc.c b/nvidia-drm/nvidia-drm-crtc.c +index f922f8d..4c5779e 100644 +--- a/nvidia-drm/nvidia-drm-crtc.c ++++ b/nvidia-drm/nvidia-drm-crtc.c +@@ -502,7 +502,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_STRUCT_PRESENT) + static int nv_drm_plane_atomic_check(struct drm_plane *plane, + struct drm_atomic_state *state) + #else +@@ -511,7 +512,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_STRUCT_PRESENT) + struct drm_plane_state *plane_state = + drm_atomic_get_new_plane_state(state, plane); + #endif +@@ -854,7 +856,8 @@ static int head_modeset_config_attach_connector( + * 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_STRUCT_PRESENT) + static int nv_drm_crtc_atomic_check(struct drm_crtc *crtc, + struct drm_atomic_state *state) + #else +@@ -862,7 +865,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_STRUCT_PRESENT) + struct drm_crtc_state *crtc_state = + drm_atomic_get_new_crtc_state(state, crtc); + #endif +diff --git a/nvidia-drm/nvidia-drm.Kbuild b/nvidia-drm/nvidia-drm.Kbuild +index aad7875..d39c26a 100644 +--- a/nvidia-drm/nvidia-drm.Kbuild ++++ b/nvidia-drm/nvidia-drm.Kbuild +@@ -135,3 +135,4 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += drm_driver_has_date + NV_CONFTEST_TYPE_COMPILE_TESTS += file_operations_fop_unsigned_offset_present + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_connector_helper_funcs_mode_valid_has_const_mode_arg + NV_CONFTEST_TYPE_COMPILE_TESTS += drm_fb_create_takes_format_info ++NV_CONFTEST_TYPE_COMPILE_TESTS += drm_atomic_commit_struct_present diff -Nru nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/series nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/series --- nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/series 2026-03-01 17:07:24.000000000 -0500 +++ nvidia-graphics-drivers-tesla-525.147.05/debian/patches/module/series 2026-09-21 09:38:10.000000000 -0400 @@ -46,6 +46,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-strncpy-to-strscpy.patch +0087-drm-atomic-state.patch +0088-drm-atomic.patch # build system updates conftest-verbose.patch
signature.asc
Description: PGP signature

