]> www.infradead.org Git - users/dwmw2/linux.git/commit
mm: make hugetlb mappings go through mm_get_unmapped_area_vmflags
authorOscar Salvador <osalvador@suse.de>
Mon, 7 Oct 2024 07:50:34 +0000 (09:50 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 7 Nov 2024 04:11:10 +0000 (20:11 -0800)
commit7bd3f1e1a9ae7f7508c88dd056755a0a4741ae88
tree8b43666ce195f8a4d6836d726b0a84889e61a8dd
parent5959ffabbb67dfdd0cd4623e675a24005de66393
mm: make hugetlb mappings go through mm_get_unmapped_area_vmflags

Hugetlb mappings will no longer be special cased but rather go through the
generic mm_get_unmapped_area_vmflags function.  For that to happen, let us
remove the .get_unmapped_area from hugetlbfs_file_operations struct, and
hint __get_unmapped_area that it should not send hugetlb mappings through
thp_get_unmapped_area_vmflags but through mm_get_unmapped_area_vmflags.

Create also a function called hugetlb_mmap_check_and_align() where a
couple of safety checks are being done and the addr is aligned to the huge
page size.  Otherwise we will have to do this in every single function,
which duplicates quite a lot of code.

Link: https://lkml.kernel.org/r/20241007075037.267650-7-osalvador@suse.de
Signed-off-by: Oscar Salvador <osalvador@suse.de>
Cc: David Hildenbrand <david@redhat.com>
Cc: Donet Tom <donettom@linux.ibm.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Peter Xu <peterx@redhat.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/hugetlbfs/inode.c
include/linux/hugetlb.h