diff options
| author | David Gibson <dgibson@samba.org> | 2002-06-27 05:36:41 -0400 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2002-06-27 05:36:41 -0400 |
| commit | 856091affeb5399ba13a2b2c8266918727583fb3 (patch) | |
| tree | 20d9f33a9e2ad3423d28c353694bd810724e724a /include | |
| parent | f200709a8f1916813064511162e33c9d4bffb013 (diff) | |
PPC32: Fixes and cleanups for PPC40x processors.
Add branch-to-self after return-from-interrupt, fix critical exception
handling, fix synchronization in set_context, other cleanups.
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-ppc/ppc_asm.h | 5 | ||||
| -rw-r--r-- | include/asm-ppc/tlbflush.h | 9 |
2 files changed, 8 insertions, 6 deletions
diff --git a/include/asm-ppc/ppc_asm.h b/include/asm-ppc/ppc_asm.h index 0c33c12f3939..f11b229000e7 100644 --- a/include/asm-ppc/ppc_asm.h +++ b/include/asm-ppc/ppc_asm.h @@ -51,7 +51,6 @@ /* * Once a version of gas that understands the AltiVec instructions - * is freely available, we can do this the normal way... - paulus */ #define LVX(r,a,b) .long (31<<26)+((r)<<21)+((a)<<16)+((b)<<11)+(103<<1) #define STVX(r,a,b) .long (31<<26)+((r)<<21)+((a)<<16)+((b)<<11)+(231<<1) @@ -169,7 +168,11 @@ END_FTR_SECTION_IFCLR(CPU_FTR_601) #else #define FIX_SRR1(ra, rb) +#ifndef CONFIG_40x #define RFI rfi +#else +#define RFI rfi; b . /* Prevent prefetch past rfi */ +#endif #define MTMSRD(r) mtmsr r #define CLR_TOP32(r) #endif /* CONFIG_PPC64BRIDGE */ diff --git a/include/asm-ppc/tlbflush.h b/include/asm-ppc/tlbflush.h index 83e6f1ae6c35..af4295e46861 100644 --- a/include/asm-ppc/tlbflush.h +++ b/include/asm-ppc/tlbflush.h @@ -21,21 +21,20 @@ extern void _tlbie(unsigned long address); extern void _tlbia(void); #if defined(CONFIG_4xx) -#define __tlbia() asm volatile ("tlbia; sync" : : : "memory") static inline void flush_tlb_all(void) - { __tlbia(); } + { _tlbia(); } static inline void flush_tlb_mm(struct mm_struct *mm) - { __tlbia(); } + { _tlbia(); } static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) { _tlbie(vmaddr); } static inline void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) - { __tlbia(); } + { _tlbia(); } static inline void flush_tlb_kernel_range(unsigned long start, unsigned long end) - { __tlbia(); } + { _tlbia(); } #define update_mmu_cache(vma, addr, pte) do { } while (0) #elif defined(CONFIG_8xx) |
