summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller2006-02-08 07:13:05 +0100
committerDavid S. Miller2006-03-20 10:11:56 +0100
commit8b11bd12aff76e02cdc2cbc9e439bba88d281223 (patch)
tree903ab8830616bfbe5a821e4359f642842c8060a4 /include
parent[SPARC64]: Register per-cpu fault status area with sun4v hypervisor. (diff)
downloadkernel-qcow2-linux-8b11bd12aff76e02cdc2cbc9e439bba88d281223.tar.gz
kernel-qcow2-linux-8b11bd12aff76e02cdc2cbc9e439bba88d281223.tar.xz
kernel-qcow2-linux-8b11bd12aff76e02cdc2cbc9e439bba88d281223.zip
[SPARC64]: Patch up mmu context register writes for sun4v.
sun4v uses ASI_MMU instead of ASI_DMMU Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/asm-sparc64/mmu_context.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/include/asm-sparc64/mmu_context.h b/include/asm-sparc64/mmu_context.h
index 1d232678821d..2760353591ab 100644
--- a/include/asm-sparc64/mmu_context.h
+++ b/include/asm-sparc64/mmu_context.h
@@ -41,11 +41,16 @@ extern void smp_tsb_sync(struct mm_struct *mm);
/* Set MMU context in the actual hardware. */
#define load_secondary_context(__mm) \
- __asm__ __volatile__("stxa %0, [%1] %2\n\t" \
- "flush %%g6" \
- : /* No outputs */ \
- : "r" (CTX_HWBITS((__mm)->context)), \
- "r" (SECONDARY_CONTEXT), "i" (ASI_DMMU))
+ __asm__ __volatile__( \
+ "\n661: stxa %0, [%1] %2\n" \
+ " .section .sun4v_1insn_patch, \"ax\"\n" \
+ " .word 661b\n" \
+ " stxa %0, [%1] %3\n" \
+ " .previous\n" \
+ " flush %%g6\n" \
+ : /* No outputs */ \
+ : "r" (CTX_HWBITS((__mm)->context)), \
+ "r" (SECONDARY_CONTEXT), "i" (ASI_DMMU), "i" (ASI_MMU))
extern void __flush_tlb_mm(unsigned long, unsigned long);