diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2016-04-29 23:26:25 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2016-05-11 21:53:55 +1000 |
commit | 484837601d4dd048d1f8d2cedd39934bb3ad6d59 (patch) | |
tree | d42a4ce2e1ccfd344743e71ec803cf1e245a2d1f /arch/powerpc/mm/tlb-radix.c | |
parent | 2f5f0dfd1e5f9840560e85ad26cb4a6f06c19e07 (diff) |
powerpc/mm: Add radix support for hugetlb
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/mm/tlb-radix.c')
-rw-r--r-- | arch/powerpc/mm/tlb-radix.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c index ecfa00f81f1e..0fdaf93a3e09 100644 --- a/arch/powerpc/mm/tlb-radix.c +++ b/arch/powerpc/mm/tlb-radix.c @@ -141,6 +141,11 @@ void radix___local_flush_tlb_page(struct mm_struct *mm, unsigned long vmaddr, void radix__local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) { +#ifdef CONFIG_HUGETLB_PAGE + /* need the return fix for nohash.c */ + if (vma && is_vm_hugetlb_page(vma)) + return __local_flush_hugetlb_page(vma, vmaddr); +#endif radix___local_flush_tlb_page(vma ? vma->vm_mm : NULL, vmaddr, mmu_get_ap(mmu_virtual_psize), 0); } @@ -202,6 +207,10 @@ bail: void radix__flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) { +#ifdef CONFIG_HUGETLB_PAGE + if (vma && is_vm_hugetlb_page(vma)) + return flush_hugetlb_page(vma, vmaddr); +#endif radix___flush_tlb_page(vma ? vma->vm_mm : NULL, vmaddr, mmu_get_ap(mmu_virtual_psize), 0); } |