(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

Attachment: signature.asc
Description: PGP signature

Reply via email to