In terms of compilation for kernels 6.17.x, in addition to patches
0006-backport-NV_DMA_BUF_HAS_DYNAMIC_ATTACHMENT-changes-f.patch,
0072-backport-iommu_dev_enable_feature-changes-from-535.2.patch and
0074-backport-drm_fb_create_takes_format_info-changes-fro.patch from
v550.163.01-4, the attached one is also necessary (based on code from v580).
Author: Piotr Morgwai Kotarbinski <[email protected]>
Description: fix missing pfn_to_pfn_t helper on kernels 6.16+
Based on code from v580.
diff -purN nvidia-575.57.08.orig/nvidia-drm/nvidia-drm-gem-user-memory.c nvidia-575.57.08.patched/nvidia-drm/nvidia-drm-gem-user-memory.c
--- nvidia-575.57.08.orig/nvidia-drm/nvidia-drm-gem-user-memory.c 2025-05-24 08:55:02.000000000 +0200
+++ nvidia-575.57.08.patched/nvidia-drm/nvidia-drm-gem-user-memory.c 2025-12-19 08:22:40.950016732 +0100
@@ -24,9 +24,7 @@
#if defined(NV_DRM_AVAILABLE)
-#if defined(NV_DRM_DRM_PRIME_H_PRESENT)
#include <drm/drm_prime.h>
-#endif
#include "nvidia-drm-gem-user-memory.h"
#include "nvidia-drm-helper.h"
@@ -116,11 +114,7 @@ static vm_fault_t __nv_vm_insert_mixed_h
{
int ret;
-#if defined(NV_PFN_TO_PFN_T_PRESENT)
ret = vm_insert_mixed(vma, address, pfn_to_pfn_t(pfn));
-#else
- ret = vm_insert_mixed(vma, address, pfn);
-#endif
switch (ret) {
case 0:
@@ -157,8 +151,14 @@ static vm_fault_t __nv_drm_gem_user_memo
#if !defined(NV_LINUX)
return vmf_insert_pfn(vma, address, pfn);
#elif defined(NV_VMF_INSERT_MIXED_PRESENT)
+
+#if defined(NV_LINUX_PFN_T_H_PRESENT)
return vmf_insert_mixed(vma, address, pfn_to_pfn_t(pfn));
#else
+ return vmf_insert_mixed(vma, address, pfn);
+#endif
+
+#else
return __nv_vm_insert_mixed_helper(vma, address, pfn);
#endif
}