diff options
Diffstat (limited to 'include/asm-powerpc/tlbflush.h')
-rw-r--r-- | include/asm-powerpc/tlbflush.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/include/asm-powerpc/tlbflush.h b/include/asm-powerpc/tlbflush.h index b6b036ccee34..5c9108147644 100644 --- a/include/asm-powerpc/tlbflush.h +++ b/include/asm-powerpc/tlbflush.h | |||
@@ -1,5 +1,6 @@ | |||
1 | #ifndef _ASM_POWERPC_TLBFLUSH_H | 1 | #ifndef _ASM_POWERPC_TLBFLUSH_H |
2 | #define _ASM_POWERPC_TLBFLUSH_H | 2 | #define _ASM_POWERPC_TLBFLUSH_H |
3 | |||
3 | /* | 4 | /* |
4 | * TLB flushing: | 5 | * TLB flushing: |
5 | * | 6 | * |
@@ -16,9 +17,6 @@ | |||
16 | */ | 17 | */ |
17 | #ifdef __KERNEL__ | 18 | #ifdef __KERNEL__ |
18 | 19 | ||
19 | struct mm_struct; | ||
20 | struct vm_area_struct; | ||
21 | |||
22 | #if defined(CONFIG_4xx) || defined(CONFIG_8xx) || defined(CONFIG_FSL_BOOKE) | 20 | #if defined(CONFIG_4xx) || defined(CONFIG_8xx) || defined(CONFIG_FSL_BOOKE) |
23 | /* | 21 | /* |
24 | * TLB flushing for software loaded TLB chips | 22 | * TLB flushing for software loaded TLB chips |
@@ -28,7 +26,9 @@ struct vm_area_struct; | |||
28 | * specific tlbie's | 26 | * specific tlbie's |
29 | */ | 27 | */ |
30 | 28 | ||
31 | extern void _tlbie(unsigned long address); | 29 | #include <linux/mm.h> |
30 | |||
31 | extern void _tlbie(unsigned long address, unsigned int pid); | ||
32 | 32 | ||
33 | #if defined(CONFIG_40x) || defined(CONFIG_8xx) | 33 | #if defined(CONFIG_40x) || defined(CONFIG_8xx) |
34 | #define _tlbia() asm volatile ("tlbia; sync" : : : "memory") | 34 | #define _tlbia() asm volatile ("tlbia; sync" : : : "memory") |
@@ -44,13 +44,13 @@ static inline void flush_tlb_mm(struct mm_struct *mm) | |||
44 | static inline void flush_tlb_page(struct vm_area_struct *vma, | 44 | static inline void flush_tlb_page(struct vm_area_struct *vma, |
45 | unsigned long vmaddr) | 45 | unsigned long vmaddr) |
46 | { | 46 | { |
47 | _tlbie(vmaddr); | 47 | _tlbie(vmaddr, vma ? vma->vm_mm->context.id : 0); |
48 | } | 48 | } |
49 | 49 | ||
50 | static inline void flush_tlb_page_nohash(struct vm_area_struct *vma, | 50 | static inline void flush_tlb_page_nohash(struct vm_area_struct *vma, |
51 | unsigned long vmaddr) | 51 | unsigned long vmaddr) |
52 | { | 52 | { |
53 | _tlbie(vmaddr); | 53 | _tlbie(vmaddr, vma ? vma->vm_mm->context.id : 0); |
54 | } | 54 | } |
55 | 55 | ||
56 | static inline void flush_tlb_range(struct vm_area_struct *vma, | 56 | static inline void flush_tlb_range(struct vm_area_struct *vma, |