diff options
Diffstat (limited to 'include/asm-sparc64/mmu_context.h')
-rw-r--r-- | include/asm-sparc64/mmu_context.h | 15 |
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); | |||
41 | 41 | ||
42 | /* Set MMU context in the actual hardware. */ | 42 | /* Set MMU context in the actual hardware. */ |
43 | #define load_secondary_context(__mm) \ | 43 | #define load_secondary_context(__mm) \ |
44 | __asm__ __volatile__("stxa %0, [%1] %2\n\t" \ | 44 | __asm__ __volatile__( \ |
45 | "flush %%g6" \ | 45 | "\n661: stxa %0, [%1] %2\n" \ |
46 | : /* No outputs */ \ | 46 | " .section .sun4v_1insn_patch, \"ax\"\n" \ |
47 | : "r" (CTX_HWBITS((__mm)->context)), \ | 47 | " .word 661b\n" \ |
48 | "r" (SECONDARY_CONTEXT), "i" (ASI_DMMU)) | 48 | " stxa %0, [%1] %3\n" \ |
49 | " .previous\n" \ | ||
50 | " flush %%g6\n" \ | ||
51 | : /* No outputs */ \ | ||
52 | : "r" (CTX_HWBITS((__mm)->context)), \ | ||
53 | "r" (SECONDARY_CONTEXT), "i" (ASI_DMMU), "i" (ASI_MMU)) | ||
49 | 54 | ||
50 | extern void __flush_tlb_mm(unsigned long, unsigned long); | 55 | extern void __flush_tlb_mm(unsigned long, unsigned long); |
51 | 56 | ||