powerpc: Replace find_linux_pte with find_linux_pte_or_hugepte
Replace find_linux_pte with find_linux_pte_or_hugepte and explicitly document why we don't need to handle transparent hugepages at callsites. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:

committed by
Benjamin Herrenschmidt

parent
ac52ae4721
commit
12bc9f6fc1
@@ -105,6 +105,7 @@ int pgd_huge(pgd_t pgd)
|
||||
|
||||
pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr)
|
||||
{
|
||||
/* Only called for hugetlbfs pages, hence can ignore THP */
|
||||
return find_linux_pte_or_hugepte(mm->pgd, addr, NULL);
|
||||
}
|
||||
|
||||
@@ -673,11 +674,14 @@ follow_huge_addr(struct mm_struct *mm, unsigned long address, int write)
|
||||
struct page *page;
|
||||
unsigned shift;
|
||||
unsigned long mask;
|
||||
|
||||
/*
|
||||
* Transparent hugepages are handled by generic code. We can skip them
|
||||
* here.
|
||||
*/
|
||||
ptep = find_linux_pte_or_hugepte(mm->pgd, address, &shift);
|
||||
|
||||
/* Verify it is a huge page else bail. */
|
||||
if (!ptep || !shift)
|
||||
if (!ptep || !shift || pmd_trans_huge(*(pmd_t *)ptep))
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
mask = (1UL << shift) - 1;
|
||||
|
Reference in New Issue
Block a user