clear_huge_page() is constrained to process a page-at-a-time because it also handles the CONFIG_HIGHMEM case. Mark __weak to allow for arch specific optimizations. Suggested-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Ankur Arora <ankur.a.arora@xxxxxxxxxx> --- mm/memory.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 405a483d2fd1..3854f0b9b3a9 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -5982,8 +5982,9 @@ static int clear_subpage(unsigned long addr, int idx, void *arg) return 0; } -void clear_huge_page(struct page *page, - unsigned long addr_hint, unsigned int pages_per_huge_page) +__weak void clear_huge_page(struct page *page, + unsigned long addr_hint, + unsigned int pages_per_huge_page) { unsigned long addr = addr_hint & ~(((unsigned long)pages_per_huge_page << PAGE_SHIFT) - 1); -- 2.31.1