Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions kernel-open/conftest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4871,6 +4871,24 @@ compile_test() {
compile_check_conftest "$CODE" "NV_MEMORY_DEVICE_COHERENT_PRESENT" "" "types"
;;

get_dev_pagemap_single_arg)
#
# Determine if get_dev_pagemap() takes single argument.
#
# The get_dev_pagemap() function was updated to take only pfn argument
# and the lock parameter was removed in kernel v6.18.
#
CODE="
#include <linux/mm.h>
#include <linux/memremap.h>
void conftest_get_dev_pagemap(void) {
struct dev_pagemap *pgmap;
unsigned long pfn = 0;
pgmap = get_dev_pagemap(pfn);
}"

compile_check_conftest "$CODE" "NV_GET_DEV_PAGEMAP_SINGLE_ARG" "" "types"
;;

# When adding a new conftest entry, please use the correct format for
# specifying the relevant upstream Linux kernel commit. Please
Expand Down
1 change: 1 addition & 0 deletions kernel-open/nvidia-uvm/nvidia-uvm.Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += mmu_notifier_ops_arch_invalidate_secondary_tlb
NV_CONFTEST_TYPE_COMPILE_TESTS += migrate_vma_added_flags
NV_CONFTEST_TYPE_COMPILE_TESTS += migrate_device_range
NV_CONFTEST_TYPE_COMPILE_TESTS += handle_mm_fault_has_pt_regs_arg
NV_CONFTEST_TYPE_COMPILE_TESTS += get_dev_pagemap_single_arg
NV_CONFTEST_TYPE_COMPILE_TESTS += mempolicy_has_unified_nodes
NV_CONFTEST_TYPE_COMPILE_TESTS += mempolicy_has_home_node
NV_CONFTEST_TYPE_COMPILE_TESTS += mpol_preferred_many_present
Expand Down
4 changes: 4 additions & 0 deletions kernel-open/nvidia-uvm/uvm_va_range_device_p2p.c
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,11 @@ static NV_STATUS alloc_device_p2p_mem(uvm_gpu_t *gpu,
// a reference to them, so take one now if using DEVICE_COHERENT pages.
if (gpu->parent->cdmm_enabled) {
get_page(page);
#if defined(NV_GET_DEV_PAGEMAP_SINGLE_ARG)
get_dev_pagemap(page_to_pfn(page));
#else
get_dev_pagemap(page_to_pfn(page), NULL);
#endif
}
#else
// CDMM P2PDMA will never be enabled for this case
Expand Down