summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm-ppc/ppc_asm.h5
-rw-r--r--include/asm-ppc/tlbflush.h9
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)