--- /dev/null
+--- NVIDIA-Linux-x86_64-495.46/kernel/nvidia-uvm/uvm_migrate_pageable.c~ 2021-10-27 19:14:51.000000000 +0200
++++ NVIDIA-Linux-x86_64-495.46/kernel/nvidia-uvm/uvm_migrate_pageable.c 2022-01-15 14:28:56.947610124 +0100
+@@ -34,6 +34,8 @@
+ #include "uvm_migrate_pageable.h"
+ #include "uvm_populate_pageable.h"
+
++#include <linux/version.h>
++
+ #ifdef UVM_MIGRATE_VMA_SUPPORTED
+
+ static struct kmem_cache *g_uvm_migrate_vma_state_cache __read_mostly;
+@@ -406,7 +408,11 @@
+ uvm_push_set_flag(&push, UVM_PUSH_FLAG_CE_NEXT_MEMBAR_NONE);
+ copying_gpu->parent->ce_hal->memset_8(&push, dst_address, 0, PAGE_SIZE);
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0)
+ dst[i] = migrate_pfn(page_to_pfn(dst_page)) | MIGRATE_PFN_LOCKED;
++#else
++ dst[i] = migrate_pfn(page_to_pfn(dst_page));
++#endif
+ }
+
+ if (copying_gpu) {
+@@ -490,7 +496,11 @@
+ uvm_push_set_flag(&push, UVM_PUSH_FLAG_CE_NEXT_MEMBAR_NONE);
+ copying_gpu->parent->ce_hal->memcopy(&push, dst_address, src_address, PAGE_SIZE);
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 16, 0)
+ dst[i] = migrate_pfn(page_to_pfn(dst_page)) | MIGRATE_PFN_LOCKED;
++#else
++ dst[i] = migrate_pfn(page_to_pfn(dst_page));
++#endif
+ }
+
+ // TODO: Bug 1766424: If the destination is a GPU and the copy was done by