Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm/rmap: fix two comments related to huge_pmd_unshare()

PMD page table unsharing no longer touches the refcount of a PMD page
table. Also, it is not about dropping the refcount of a "PMD page" but
the "PMD page table".

Let's just simplify by saying that the PMD page table was unmapped,
consequently also unmapping the folio that was mapped into this page.

This code should be deduplicated in the future.

Link: https://lkml.kernel.org/r/20251223214037.580860-4-david@kernel.org
Fixes: 59d9094df3d7 ("mm: hugetlb: independent PMD page table shared count")
Signed-off-by: David Hildenbrand (Red Hat) <david@kernel.org>
Reviewed-by: Rik van Riel <riel@surriel.com>
Tested-by: Laurence Oberman <loberman@redhat.com>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Acked-by: Oscar Salvador <osalvador@suse.de>
Cc: Liu Shixin <liushixin2@huawei.com>
Cc: Harry Yoo <harry.yoo@oracle.com>
Cc: Lance Yang <lance.yang@linux.dev>
Cc: "Uschakow, Stanislav" <suschako@amazon.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

David Hildenbrand (Red Hat) and committed by
Andrew Morton
a8682d50 3937027c

+4 -16
+4 -16
mm/rmap.c
··· 2016 2016 flush_tlb_range(vma, 2017 2017 range.start, range.end); 2018 2018 /* 2019 - * The ref count of the PMD page was 2020 - * dropped which is part of the way map 2021 - * counting is done for shared PMDs. 2022 - * Return 'true' here. When there is 2023 - * no other sharing, huge_pmd_unshare 2024 - * returns false and we will unmap the 2025 - * actual page and drop map count 2026 - * to zero. 2019 + * The PMD table was unmapped, 2020 + * consequently unmapping the folio. 2027 2021 */ 2028 2022 goto walk_done; 2029 2023 } ··· 2410 2416 range.start, range.end); 2411 2417 2412 2418 /* 2413 - * The ref count of the PMD page was 2414 - * dropped which is part of the way map 2415 - * counting is done for shared PMDs. 2416 - * Return 'true' here. When there is 2417 - * no other sharing, huge_pmd_unshare 2418 - * returns false and we will unmap the 2419 - * actual page and drop map count 2420 - * to zero. 2419 + * The PMD table was unmapped, 2420 + * consequently unmapping the folio. 2421 2421 */ 2422 2422 page_vma_mapped_walk_done(&pvmw); 2423 2423 break;