diff options
Diffstat (limited to 'arch/tile/kernel/tlb.c')
-rw-r--r-- | arch/tile/kernel/tlb.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/tile/kernel/tlb.c b/arch/tile/kernel/tlb.c index a5f241c24cac..3fd54d5bbd4c 100644 --- a/arch/tile/kernel/tlb.c +++ b/arch/tile/kernel/tlb.c | |||
@@ -15,6 +15,7 @@ | |||
15 | 15 | ||
16 | #include <linux/cpumask.h> | 16 | #include <linux/cpumask.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/hugetlb.h> | ||
18 | #include <asm/tlbflush.h> | 19 | #include <asm/tlbflush.h> |
19 | #include <asm/homecache.h> | 20 | #include <asm/homecache.h> |
20 | #include <hv/hypervisor.h> | 21 | #include <hv/hypervisor.h> |
@@ -49,25 +50,25 @@ void flush_tlb_current_task(void) | |||
49 | flush_tlb_mm(current->mm); | 50 | flush_tlb_mm(current->mm); |
50 | } | 51 | } |
51 | 52 | ||
52 | void flush_tlb_page_mm(const struct vm_area_struct *vma, struct mm_struct *mm, | 53 | void flush_tlb_page_mm(struct vm_area_struct *vma, struct mm_struct *mm, |
53 | unsigned long va) | 54 | unsigned long va) |
54 | { | 55 | { |
55 | unsigned long size = hv_page_size(vma); | 56 | unsigned long size = vma_kernel_pagesize(vma); |
56 | int cache = (vma->vm_flags & VM_EXEC) ? HV_FLUSH_EVICT_L1I : 0; | 57 | int cache = (vma->vm_flags & VM_EXEC) ? HV_FLUSH_EVICT_L1I : 0; |
57 | flush_remote(0, cache, mm_cpumask(mm), | 58 | flush_remote(0, cache, mm_cpumask(mm), |
58 | va, size, size, mm_cpumask(mm), NULL, 0); | 59 | va, size, size, mm_cpumask(mm), NULL, 0); |
59 | } | 60 | } |
60 | 61 | ||
61 | void flush_tlb_page(const struct vm_area_struct *vma, unsigned long va) | 62 | void flush_tlb_page(struct vm_area_struct *vma, unsigned long va) |
62 | { | 63 | { |
63 | flush_tlb_page_mm(vma, vma->vm_mm, va); | 64 | flush_tlb_page_mm(vma, vma->vm_mm, va); |
64 | } | 65 | } |
65 | EXPORT_SYMBOL(flush_tlb_page); | 66 | EXPORT_SYMBOL(flush_tlb_page); |
66 | 67 | ||
67 | void flush_tlb_range(const struct vm_area_struct *vma, | 68 | void flush_tlb_range(struct vm_area_struct *vma, |
68 | unsigned long start, unsigned long end) | 69 | unsigned long start, unsigned long end) |
69 | { | 70 | { |
70 | unsigned long size = hv_page_size(vma); | 71 | unsigned long size = vma_kernel_pagesize(vma); |
71 | struct mm_struct *mm = vma->vm_mm; | 72 | struct mm_struct *mm = vma->vm_mm; |
72 | int cache = (vma->vm_flags & VM_EXEC) ? HV_FLUSH_EVICT_L1I : 0; | 73 | int cache = (vma->vm_flags & VM_EXEC) ? HV_FLUSH_EVICT_L1I : 0; |
73 | flush_remote(0, cache, mm_cpumask(mm), start, end - start, size, | 74 | flush_remote(0, cache, mm_cpumask(mm), start, end - start, size, |