Zitat von: Teriarch in 2026/05/01, 15:56:52
...
@michaa7
...ist vom Oktober 2025
...Der Debian Nvidia Treiber
nvidia-tesla-470-kernel-dkms_470.256.02-9_amd64.deb ist vom März 2026 und daher durch obigen Patch
leichter auf den neuesten Stand zu bringen.
--- aaa/nvidia-drm/nvidia-dma-fence-helper.h 2024-05-02 16:49:58.000000000 +0200
+++ bbb/nvidia-drm/nvidia-dma-fence-helper.h 2026-04-28 16:36:24.448688067 +0200
@@ -93,7 +93,8 @@ static inline int nv_dma_fence_signal(nv
#if defined(NV_LINUX_FENCE_H_PRESENT)
return fence_signal(fence);
#else
- return dma_fence_signal(fence);
+ dma_fence_signal(fence);
+ return 0;
#endif
}
--- aaa/nvidia/nv-mmap.c 2026-04-28 17:32:39.018436213 +0200
+++ bbb/nvidia/nv-mmap.c 2026-04-28 16:37:09.514796016 +0200
@@ -800,15 +800,22 @@ void NV_API_CALL nv_set_safe_to_mmap_loc
}
#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;
}
@@ -838,7 +845,7 @@ static NvBool nv_vma_enter_locked(struct
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;
}
@@ -854,7 +861,7 @@ void nv_vma_start_write(struct vm_area_s
{
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);
@@ -863,7 +870,7 @@ void nv_vma_start_write(struct vm_area_s
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);
}
--- aaa/common/inc/nv-mm.h 2026-05-01 15:29:25.280617220 +0200
+++ bbb/common/inc/nv-mm.h 2026-05-01 15:19:01.520148178 +0200
@@ -276,6 +276,21 @@ static inline void nv_vma_flags_clear_wo
ACCESS_PRIVATE(vma, __vm_flags) &= ~flags;
#endif
}
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(7,0,0)
+#define NV_IS_VMA_WRITE_LOCKED_HAS_MM_LOCK_SEQ_ARG
+#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
#include <linux/version.h>

┌──(isegrimm ㉿ T-A-K-A-Y-A)-▷[~]
└─▷$ dofu
OK:1 https://deb.debian.org/debian unstable InRelease
OK:2 https://packages.siduction.org/extra unstable InRelease
OK:3 https://packages.siduction.org/fixes unstable InRelease
Alle Pakete sind aktuell.
Zusammenfassung:
Aktualisiere: 0, Installiere: 0, Entferne: 0, Aktualisiere nicht: 0
┌──(isegrimm ㉿ T-A-K-A-Y-A)-▷[~]
└─▷$ apt policy nvidia-driver
nvidia-driver:
Installiert: 580.142-1tux1
Installationskandidat: 580.142-1tux1
Versionstabelle:
*** 580.142-1tux1 500
500 https://packages.siduction.org/fixes unstable/non-free amd64 Packages
100 /var/lib/dpkg/status
580.126.18-1tux1 500
500 https://packages.siduction.org/fixes unstable/non-free amd64 Packages
550.163.01-5 500
500 https://deb.debian.org/debian unstable/non-free amd64 Packages
┌──(isegrimm ㉿ T-A-K-A-Y-A)-▷[~]
└─▷$

sudo apt autoremove will get rid of any old 6 releases, or just remove manually. dpkg --configure worked cleanly after that and the reboot gave me a GUI screen to work with.