|
@@ -164,7 +164,7 @@ void radix__local_flush_tlb_page_psize(struct mm_struct *mm, unsigned long vmadd
|
|
|
unsigned long ap = mmu_get_ap(psize);
|
|
unsigned long ap = mmu_get_ap(psize);
|
|
|
|
|
|
|
|
preempt_disable();
|
|
preempt_disable();
|
|
|
- pid = mm ? mm->context.id : 0;
|
|
|
|
|
|
|
+ pid = mm->context.id;
|
|
|
if (pid != MMU_NO_CONTEXT)
|
|
if (pid != MMU_NO_CONTEXT)
|
|
|
_tlbiel_va(vmaddr, pid, ap, RIC_FLUSH_TLB);
|
|
_tlbiel_va(vmaddr, pid, ap, RIC_FLUSH_TLB);
|
|
|
preempt_enable();
|
|
preempt_enable();
|
|
@@ -174,11 +174,10 @@ void radix__local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmadd
|
|
|
{
|
|
{
|
|
|
#ifdef CONFIG_HUGETLB_PAGE
|
|
#ifdef CONFIG_HUGETLB_PAGE
|
|
|
/* need the return fix for nohash.c */
|
|
/* need the return fix for nohash.c */
|
|
|
- if (vma && is_vm_hugetlb_page(vma))
|
|
|
|
|
- return __local_flush_hugetlb_page(vma, vmaddr);
|
|
|
|
|
|
|
+ if (is_vm_hugetlb_page(vma))
|
|
|
|
|
+ return radix__local_flush_hugetlb_page(vma, vmaddr);
|
|
|
#endif
|
|
#endif
|
|
|
- radix__local_flush_tlb_page_psize(vma ? vma->vm_mm : NULL, vmaddr,
|
|
|
|
|
- mmu_virtual_psize);
|
|
|
|
|
|
|
+ radix__local_flush_tlb_page_psize(vma->vm_mm, vmaddr, mmu_virtual_psize);
|
|
|
}
|
|
}
|
|
|
EXPORT_SYMBOL(radix__local_flush_tlb_page);
|
|
EXPORT_SYMBOL(radix__local_flush_tlb_page);
|
|
|
|
|
|
|
@@ -232,7 +231,7 @@ void radix__flush_tlb_page_psize(struct mm_struct *mm, unsigned long vmaddr,
|
|
|
unsigned long ap = mmu_get_ap(psize);
|
|
unsigned long ap = mmu_get_ap(psize);
|
|
|
|
|
|
|
|
preempt_disable();
|
|
preempt_disable();
|
|
|
- pid = mm ? mm->context.id : 0;
|
|
|
|
|
|
|
+ pid = mm->context.id;
|
|
|
if (unlikely(pid == MMU_NO_CONTEXT))
|
|
if (unlikely(pid == MMU_NO_CONTEXT))
|
|
|
goto bail;
|
|
goto bail;
|
|
|
if (!mm_is_thread_local(mm))
|
|
if (!mm_is_thread_local(mm))
|
|
@@ -246,11 +245,10 @@ bail:
|
|
|
void radix__flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr)
|
|
void radix__flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr)
|
|
|
{
|
|
{
|
|
|
#ifdef CONFIG_HUGETLB_PAGE
|
|
#ifdef CONFIG_HUGETLB_PAGE
|
|
|
- if (vma && is_vm_hugetlb_page(vma))
|
|
|
|
|
- return flush_hugetlb_page(vma, vmaddr);
|
|
|
|
|
|
|
+ if (is_vm_hugetlb_page(vma))
|
|
|
|
|
+ return radix__flush_hugetlb_page(vma, vmaddr);
|
|
|
#endif
|
|
#endif
|
|
|
- radix__flush_tlb_page_psize(vma ? vma->vm_mm : NULL, vmaddr,
|
|
|
|
|
- mmu_virtual_psize);
|
|
|
|
|
|
|
+ radix__flush_tlb_page_psize(vma->vm_mm, vmaddr, mmu_virtual_psize);
|
|
|
}
|
|
}
|
|
|
EXPORT_SYMBOL(radix__flush_tlb_page);
|
|
EXPORT_SYMBOL(radix__flush_tlb_page);
|
|
|
|
|
|
|
@@ -330,7 +328,7 @@ void radix__flush_tlb_range_psize(struct mm_struct *mm, unsigned long start,
|
|
|
|
|
|
|
|
|
|
|
|
|
preempt_disable();
|
|
preempt_disable();
|
|
|
- pid = mm ? mm->context.id : 0;
|
|
|
|
|
|
|
+ pid = mm->context.id;
|
|
|
if (unlikely(pid == MMU_NO_CONTEXT))
|
|
if (unlikely(pid == MMU_NO_CONTEXT))
|
|
|
goto err_out;
|
|
goto err_out;
|
|
|
|
|
|
|
@@ -361,7 +359,7 @@ void radix__flush_tlb_collapsed_pmd(struct mm_struct *mm, unsigned long addr)
|
|
|
unsigned long pid, end;
|
|
unsigned long pid, end;
|
|
|
|
|
|
|
|
|
|
|
|
|
- pid = mm ? mm->context.id : 0;
|
|
|
|
|
|
|
+ pid = mm->context.id;
|
|
|
if (unlikely(pid == MMU_NO_CONTEXT))
|
|
if (unlikely(pid == MMU_NO_CONTEXT))
|
|
|
goto no_context;
|
|
goto no_context;
|
|
|
|
|
|