[PATCH v2 03/20] hugetlb_vmemmap: Always flush TLB if needed upon PTE remapping
From: James Houghton
Date: Fri Oct 02 2026 - 20:22:35 EST
vmemmap_remap_range() can potentially leave the vmemmap in a partially
optimized state. In this case, a TLB flush should be done if the walk
caller asked for it, even if the optimization was not fully applied.
A follow-up patch will more completely deal with partially-optimized
folios.
Signed-off-by: James Houghton <jthoughton@xxxxxxxxxx>
---
mm/hugetlb_vmemmap.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c
index 0057fa2a16a8..1a2645c382ba 100644
--- a/mm/hugetlb_vmemmap.c
+++ b/mm/hugetlb_vmemmap.c
@@ -163,13 +163,11 @@ static int vmemmap_remap_range(unsigned long start, unsigned long end,
ret = walk_kernel_page_table_range(start, end, &vmemmap_remap_ops,
NULL, walk);
mmap_read_unlock(&init_mm);
- if (ret)
- return ret;
if (walk->remap_pte && !(walk->flags & VMEMMAP_REMAP_NO_TLB_FLUSH))
flush_tlb_kernel_range(start, end);
- return 0;
+ return ret;
}
/*
--
2.56.0.rc1.315.gc6ed9934b7-goog