diff options
Diffstat (limited to 'arch/sparc/include/asm/tsb.h')
-rw-r--r-- | arch/sparc/include/asm/tsb.h | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/arch/sparc/include/asm/tsb.h b/arch/sparc/include/asm/tsb.h index 76e4299dd9bc..83c571d8c8a7 100644 --- a/arch/sparc/include/asm/tsb.h +++ b/arch/sparc/include/asm/tsb.h | |||
@@ -50,8 +50,6 @@ | |||
50 | #define TSB_TAG_INVALID_BIT 46 | 50 | #define TSB_TAG_INVALID_BIT 46 |
51 | #define TSB_TAG_INVALID_HIGH (1 << (TSB_TAG_INVALID_BIT - 32)) | 51 | #define TSB_TAG_INVALID_HIGH (1 << (TSB_TAG_INVALID_BIT - 32)) |
52 | 52 | ||
53 | #define TSB_MEMBAR membar #StoreStore | ||
54 | |||
55 | /* Some cpus support physical address quad loads. We want to use | 53 | /* Some cpus support physical address quad loads. We want to use |
56 | * those if possible so we don't need to hard-lock the TSB mapping | 54 | * those if possible so we don't need to hard-lock the TSB mapping |
57 | * into the TLB. We encode some instruction patching in order to | 55 | * into the TLB. We encode some instruction patching in order to |
@@ -128,13 +126,11 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end; | |||
128 | cmp REG1, REG2; \ | 126 | cmp REG1, REG2; \ |
129 | bne,pn %icc, 99b; \ | 127 | bne,pn %icc, 99b; \ |
130 | nop; \ | 128 | nop; \ |
131 | TSB_MEMBAR | ||
132 | 129 | ||
133 | #define TSB_WRITE(TSB, TTE, TAG) \ | 130 | #define TSB_WRITE(TSB, TTE, TAG) \ |
134 | add TSB, 0x8, TSB; \ | 131 | add TSB, 0x8, TSB; \ |
135 | TSB_STORE(TSB, TTE); \ | 132 | TSB_STORE(TSB, TTE); \ |
136 | sub TSB, 0x8, TSB; \ | 133 | sub TSB, 0x8, TSB; \ |
137 | TSB_MEMBAR; \ | ||
138 | TSB_STORE(TSB, TAG); | 134 | TSB_STORE(TSB, TAG); |
139 | 135 | ||
140 | #define KTSB_LOAD_QUAD(TSB, REG) \ | 136 | #define KTSB_LOAD_QUAD(TSB, REG) \ |
@@ -153,13 +149,11 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end; | |||
153 | cmp REG1, REG2; \ | 149 | cmp REG1, REG2; \ |
154 | bne,pn %icc, 99b; \ | 150 | bne,pn %icc, 99b; \ |
155 | nop; \ | 151 | nop; \ |
156 | TSB_MEMBAR | ||
157 | 152 | ||
158 | #define KTSB_WRITE(TSB, TTE, TAG) \ | 153 | #define KTSB_WRITE(TSB, TTE, TAG) \ |
159 | add TSB, 0x8, TSB; \ | 154 | add TSB, 0x8, TSB; \ |
160 | stxa TTE, [TSB] ASI_N; \ | 155 | stxa TTE, [TSB] ASI_N; \ |
161 | sub TSB, 0x8, TSB; \ | 156 | sub TSB, 0x8, TSB; \ |
162 | TSB_MEMBAR; \ | ||
163 | stxa TAG, [TSB] ASI_N; | 157 | stxa TAG, [TSB] ASI_N; |
164 | 158 | ||
165 | /* Do a kernel page table walk. Leaves physical PTE pointer in | 159 | /* Do a kernel page table walk. Leaves physical PTE pointer in |