powerpc/book3e: Change hugetlb preload to take vma argument
This avoids an extra find_vma() and is less error-prone. Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
committed by
Benjamin Herrenschmidt
parent
1257a76547
commit
d93e4d7d72
@@ -37,12 +37,14 @@ static inline int book3e_tlb_exists(unsigned long ea, unsigned long pid)
|
||||
return found;
|
||||
}
|
||||
|
||||
void book3e_hugetlb_preload(struct mm_struct *mm, unsigned long ea, pte_t pte)
|
||||
void book3e_hugetlb_preload(struct vm_area_struct *vma, unsigned long ea,
|
||||
pte_t pte)
|
||||
{
|
||||
unsigned long mas1, mas2;
|
||||
u64 mas7_3;
|
||||
unsigned long psize, tsize, shift;
|
||||
unsigned long flags;
|
||||
struct mm_struct *mm;
|
||||
|
||||
#ifdef CONFIG_PPC_FSL_BOOK3E
|
||||
int index, ncams;
|
||||
@@ -51,12 +53,14 @@ void book3e_hugetlb_preload(struct mm_struct *mm, unsigned long ea, pte_t pte)
|
||||
if (unlikely(is_kernel_addr(ea)))
|
||||
return;
|
||||
|
||||
mm = vma->vm_mm;
|
||||
|
||||
#ifdef CONFIG_PPC_MM_SLICES
|
||||
psize = get_slice_psize(mm, ea);
|
||||
tsize = mmu_get_tsize(psize);
|
||||
shift = mmu_psize_defs[psize].shift;
|
||||
#else
|
||||
psize = vma_mmu_pagesize(find_vma(mm, ea));
|
||||
psize = vma_mmu_pagesize(vma);
|
||||
shift = __ilog2(psize);
|
||||
tsize = shift - 10;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user