hugetlb: pte_alloc_huge() to replace huge pte_alloc_map()
authorHugh Dickins <hughd@google.com>
Wed, 19 Apr 2023 05:22:02 +0000 (22:22 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 21 Apr 2023 21:52:04 +0000 (14:52 -0700)
commitf724392415b3e1ae844d2766669c0d955fe9a17b
tree7ce7fd319cf2f3ebd1c2f84464613c0b960feae2
parent29ad6bb313487370f9dfe5441fc8982593b6384e
hugetlb: pte_alloc_huge() to replace huge pte_alloc_map()

Some architectures can have their hugetlb pages down at the lowest PTE
level: their huge_pte_alloc() using pte_alloc_map(), but without any
following pte_unmap().  Since none of these arches uses CONFIG_HIGHPTE,
this is not seen as a problem at present; but would become a problem if
forthcoming changes were to add an rcu_read_lock() into pte_offset_map(),
with the rcu_read_unlock() expected in pte_unmap().

Similarly in their huge_pte_offset(): pte_offset_kernel() is good enough
for that, but it's probably less confusing if we define pte_offset_huge()
along with pte_alloc_huge().  Only define them without CONFIG_HIGHPTE: so
there would be a build error to signal if ever more work is needed.

For ease of development, define these now for 6.4-rc1, ahead of any use:
then architectures can integrate patches using them, independent from mm.

Link: https://lkml.kernel.org/r/ae9e7d98-8a3a-cfd9-4762-bcddffdf96cf@google.com
Signed-off-by: Hugh Dickins <hughd@google.com>
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Muchun Song <muchun.song@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/hugetlb.h