The patch titled Subject: mm: hugetlb: fix dissolve_free_huge_page use of tail/head page has been added to the -mm tree. Its filename is mm-hugetlb-alloc-the-vmemmap-pages-associated-with-each-hugetlb-page-fix.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/mm-hugetlb-alloc-the-vmemmap-pages-associated-with-each-hugetlb-page-fix.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/mm-hugetlb-alloc-the-vmemmap-pages-associated-with-each-hugetlb-page-fix.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Mike Kravetz <mike.kravetz@xxxxxxxxxx> Subject: mm: hugetlb: fix dissolve_free_huge_page use of tail/head page The routine dissolve_free_huge_page can be passed the tail page of a hugetlb page. The tail page is incorrectly passed on to the routines alloc_huge_page_vmemmap and add_hugetlb_page which expect a hugetlb head page. Operating on a tail page instead of head page could result in addressing exceptions or vmemmap corruption. Link: https://lkml.kernel.org/r/20210527231225.226987-1-mike.kravetz@xxxxxxxxxx Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx> Reviewed-by: Muchun Song <songmuchun@xxxxxxxxxxxxx> Reviewed-by: Oscar Salvador <osalvador@xxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Cc: David Hildenbrand <david@xxxxxxxxxx> Cc: Naoya Horiguchi <naoya.horiguchi@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/hugetlb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/mm/hugetlb.c~mm-hugetlb-alloc-the-vmemmap-pages-associated-with-each-hugetlb-page-fix +++ a/mm/hugetlb.c @@ -1954,7 +1954,7 @@ retry: * Attempt to allocate vmemmmap here so that we can take * appropriate action on failure. */ - rc = alloc_huge_page_vmemmap(h, page); + rc = alloc_huge_page_vmemmap(h, head); if (!rc) { /* * Move PageHWPoison flag from head page to the raw @@ -1968,7 +1968,7 @@ retry: update_and_free_page(h, head, false); } else { spin_lock_irq(&hugetlb_lock); - add_hugetlb_page(h, page, false); + add_hugetlb_page(h, head, false); h->max_huge_pages++; spin_unlock_irq(&hugetlb_lock); } _ Patches currently in -mm which might be from mike.kravetz@xxxxxxxxxx are mm-hugetlb-alloc-the-vmemmap-pages-associated-with-each-hugetlb-page-fix.patch