diff options
author | Jonathan Austin <jonathan.austin@arm.com> | 2013-04-24 06:56:09 -0400 |
---|---|---|
committer | Jonathan Austin <jonathan.austin@arm.com> | 2013-06-07 12:02:46 -0400 |
commit | 8d655d835bc5c0cb7d485d147ba96249e356a697 (patch) | |
tree | 5df4992067afb8f79282bd4b7def078e2579bb32 | |
parent | 8006b4d1a7c70f27a87cb753b5ed90483f0cfe26 (diff) |
ARM: nommu: add stub local_flush_bp_all() for !CONFIG_MMUU
Since the merging of Will's tlb-ops branch, specifically 89c7e4b8bbb3
(ARM: 7661/1: mm: perform explicit branch predictor maintenance when required),
building SMP without CONFIG_MMU has been broken.
The local_flush_bp_all function is only called for operations related to
changing the kernel's view of memory and ASID rollover - both of which are
irrelevant to an !MMU kernel.
This patch adds a stub local_flush_bp_all() function to the other tlb
maintenance stubs and restores the ability to build an SMP !MMU kernel.
Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
-rw-r--r-- | arch/arm/include/asm/tlbflush.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h index cc8517e0f132..ded7c16f80cc 100644 --- a/arch/arm/include/asm/tlbflush.h +++ b/arch/arm/include/asm/tlbflush.h | |||
@@ -549,6 +549,7 @@ static inline void local_flush_tlb_page(struct vm_area_struct *vma, unsigned lon | |||
549 | static inline void local_flush_tlb_kernel_page(unsigned long kaddr) { } | 549 | static inline void local_flush_tlb_kernel_page(unsigned long kaddr) { } |
550 | static inline void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) { } | 550 | static inline void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) { } |
551 | static inline void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) { } | 551 | static inline void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) { } |
552 | static inline void local_flush_bp_all(void) { } | ||
552 | 553 | ||
553 | extern void flush_tlb_all(void); | 554 | extern void flush_tlb_all(void); |
554 | extern void flush_tlb_mm(struct mm_struct *mm); | 555 | extern void flush_tlb_mm(struct mm_struct *mm); |
@@ -556,6 +557,7 @@ extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr); | |||
556 | extern void flush_tlb_kernel_page(unsigned long kaddr); | 557 | extern void flush_tlb_kernel_page(unsigned long kaddr); |
557 | extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); | 558 | extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); |
558 | extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); | 559 | extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); |
560 | extern void flush_bp_all(void); | ||
559 | #endif /* __ASSEMBLY__ */ | 561 | #endif /* __ASSEMBLY__ */ |
560 | 562 | ||
561 | #endif | 563 | #endif |