mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-15 19:45:26 +00:00
hugetlb: rename vma_shareable() and refactor code
Rename the routine vma_shareable to vma_addr_pmd_shareable as it is checking a specific address within the vma. Refactor code to check if an aligned range is shareable as this will be needed in a subsequent patch. Link: https://lkml.kernel.org/r/20220914221810.95771-6-mike.kravetz@oracle.com Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com> Reviewed-by: Miaohe Lin <linmiaohe@huawei.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> Cc: Axel Rasmussen <axelrasmussen@google.com> Cc: David Hildenbrand <david@redhat.com> Cc: Davidlohr Bueso <dave@stgolabs.net> Cc: James Houghton <jthoughton@google.com> Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Mina Almasry <almasrymina@google.com> Cc: Muchun Song <songmuchun@bytedance.com> Cc: Naoya Horiguchi <naoya.horiguchi@linux.dev> Cc: Pasha Tatashin <pasha.tatashin@soleen.com> Cc: Peter Xu <peterx@redhat.com> Cc: Prakash Sangappa <prakash.sangappa@oracle.com> Cc: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
c86272287b
commit
12710fd696
1 changed files with 13 additions and 6 deletions
19
mm/hugetlb.c
19
mm/hugetlb.c
|
@ -6640,26 +6640,33 @@ static unsigned long page_table_shareable(struct vm_area_struct *svma,
|
|||
return saddr;
|
||||
}
|
||||
|
||||
static bool vma_shareable(struct vm_area_struct *vma, unsigned long addr)
|
||||
static bool __vma_aligned_range_pmd_shareable(struct vm_area_struct *vma,
|
||||
unsigned long start, unsigned long end)
|
||||
{
|
||||
unsigned long base = addr & PUD_MASK;
|
||||
unsigned long end = base + PUD_SIZE;
|
||||
|
||||
/*
|
||||
* check on proper vm_flags and page table alignment
|
||||
*/
|
||||
if (vma->vm_flags & VM_MAYSHARE && range_in_vma(vma, base, end))
|
||||
if (vma->vm_flags & VM_MAYSHARE && range_in_vma(vma, start, end))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool vma_addr_pmd_shareable(struct vm_area_struct *vma,
|
||||
unsigned long addr)
|
||||
{
|
||||
unsigned long start = addr & PUD_MASK;
|
||||
unsigned long end = start + PUD_SIZE;
|
||||
|
||||
return __vma_aligned_range_pmd_shareable(vma, start, end);
|
||||
}
|
||||
|
||||
bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr)
|
||||
{
|
||||
#ifdef CONFIG_USERFAULTFD
|
||||
if (uffd_disable_huge_pmd_share(vma))
|
||||
return false;
|
||||
#endif
|
||||
return vma_shareable(vma, addr);
|
||||
return vma_addr_pmd_shareable(vma, addr);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue