diff options
author | Thomas Bogendoerfer <tsbogend@alpha.franken.de> | 2007-11-25 05:47:56 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2008-01-29 05:14:58 -0500 |
commit | 930bff882296c02ca81db108672ef4ca06c37db5 (patch) | |
tree | 53288137d4f7cc02d8ca417edb2b25221c3007cd /include | |
parent | 2064ba23e58daa929eec6f5e7a2abc24574a95b9 (diff) |
[MIPS] IP28: added cache barrier to assembly routines
IP28 needs special treatment to avoid speculative accesses. gcc
takes care for .c code, but for assembly code we need to do it
manually.
This is taken from Peter Fuersts IP28 patches.
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-mips/asm.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/asm-mips/asm.h b/include/asm-mips/asm.h index 12e17581b823..608cfcfbb3ea 100644 --- a/include/asm-mips/asm.h +++ b/include/asm-mips/asm.h | |||
@@ -398,4 +398,12 @@ symbol = value | |||
398 | 398 | ||
399 | #define SSNOP sll zero, zero, 1 | 399 | #define SSNOP sll zero, zero, 1 |
400 | 400 | ||
401 | #ifdef CONFIG_SGI_IP28 | ||
402 | /* Inhibit speculative stores to volatile (e.g.DMA) or invalid addresses. */ | ||
403 | #include <asm/cacheops.h> | ||
404 | #define R10KCBARRIER(addr) cache Cache_Barrier, addr; | ||
405 | #else | ||
406 | #define R10KCBARRIER(addr) | ||
407 | #endif | ||
408 | |||
401 | #endif /* __ASM_ASM_H */ | 409 | #endif /* __ASM_ASM_H */ |