From a1b11bd7356c981d61e1eb6c86c546f15c45c07a Mon Sep 17 00:00:00 2001 From: Ketan Patil Date: Mon, 4 Dec 2023 13:53:59 +0000 Subject: [PATCH] video: tegra: nvmap: Use pfn_is_map_memory instead of pfn_valid CONFIG_HAVE_ARCH_PFN_VALID has been removed by following upstream patch: https://lkml.kernel.org/linux-mm/20210527174913.GJ8661@arm.com/T/ Hence kernel k5.15 onwards uses pfn_valid definition from mmzone.h, while k5.10 uses pfn_valid definition from init.c pfn_valid definition for k5.10 has last call to memblock_is_map_memory which is missing in current definition of pfn_valid. Hence bad pte fault is seen for carveout buffers. Use pfn_is_map_memory instead of pfn_valid as it ultimately calls memblock_is_map_memory. Bug 4343935 Change-Id: I27d1057ed566220e2d8b9a4482022f5318df65ff Signed-off-by: Ketan Patil Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3027601 Reviewed-by: Krishna Reddy GVS: Gerrit_Virtual_Submit --- drivers/video/tegra/nvmap/nvmap_fault.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/video/tegra/nvmap/nvmap_fault.c b/drivers/video/tegra/nvmap/nvmap_fault.c index 4e56a1dd..fc7f0d81 100644 --- a/drivers/video/tegra/nvmap/nvmap_fault.c +++ b/drivers/video/tegra/nvmap/nvmap_fault.c @@ -202,7 +202,7 @@ static int nvmap_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) BUG_ON(priv->handle->carveout->base & ~PAGE_MASK); pfn = ((priv->handle->carveout->base + offs) >> PAGE_SHIFT); - if (!pfn_valid(pfn)) { + if (!pfn_is_map_memory(pfn)) { vm_insert_pfn(vma, (unsigned long)vmf_address, pfn); return VM_FAULT_NOPAGE; @@ -217,7 +217,7 @@ static int nvmap_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) offs >>= PAGE_SHIFT; page = priv->handle->pgalloc.pages[offs]; pfn = page_to_pfn(page); - if (!pfn_valid(pfn)) { + if (!pfn_is_map_memory(pfn)) { vm_insert_pfn(vma, (unsigned long)vmf_address, pfn); return VM_FAULT_NOPAGE;