diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-06-17 05:03:15 -0400 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-06-27 05:07:57 -0400 |
commit | dc81df244028e0d07c8723e3f7ebd1a35e848293 (patch) | |
tree | 40aafc02150025631b15dc514469ff74318e71e6 /arch/arc/mm/tlbex.S | |
parent | c3e757a77cab461d11cd3e365d700e8c8fb3fae0 (diff) |
ARC: [tlb-miss] Fix bug with CONFIG_ARC_DBG_TLB_MISS_COUNT
LOAD_FAULT_PTE macro is expected to set r2 with faulting vaddr.
However in case of CONFIG_ARC_DBG_TLB_MISS_COUNT, it was getting
clobbered with statistics collection code.
Fix latter by using a different register.
Note that only I-TLB Miss handler was potentially affected.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/mm/tlbex.S')
-rw-r--r-- | arch/arc/mm/tlbex.S | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/arc/mm/tlbex.S b/arch/arc/mm/tlbex.S index fcdc19ff6da7..5c5bb23001b0 100644 --- a/arch/arc/mm/tlbex.S +++ b/arch/arc/mm/tlbex.S | |||
@@ -147,9 +147,9 @@ ex_saved_reg1: | |||
147 | #ifdef CONFIG_ARC_DBG_TLB_MISS_COUNT | 147 | #ifdef CONFIG_ARC_DBG_TLB_MISS_COUNT |
148 | and.f 0, r0, _PAGE_PRESENT | 148 | and.f 0, r0, _PAGE_PRESENT |
149 | bz 1f | 149 | bz 1f |
150 | ld r2, [num_pte_not_present] | 150 | ld r3, [num_pte_not_present] |
151 | add r2, r2, 1 | 151 | add r3, r3, 1 |
152 | st r2, [num_pte_not_present] | 152 | st r3, [num_pte_not_present] |
153 | 1: | 153 | 1: |
154 | #endif | 154 | #endif |
155 | 155 | ||
@@ -271,7 +271,7 @@ ARC_ENTRY EV_TLBMissI | |||
271 | #endif | 271 | #endif |
272 | 272 | ||
273 | ;---------------------------------------------------------------- | 273 | ;---------------------------------------------------------------- |
274 | ; Get the PTE corresponding to V-addr accessed | 274 | ; Get the PTE corresponding to V-addr accessed, r2 is setup with EFA |
275 | LOAD_FAULT_PTE | 275 | LOAD_FAULT_PTE |
276 | 276 | ||
277 | ;---------------------------------------------------------------- | 277 | ;---------------------------------------------------------------- |
@@ -311,7 +311,7 @@ ARC_ENTRY EV_TLBMissD | |||
311 | 311 | ||
312 | ;---------------------------------------------------------------- | 312 | ;---------------------------------------------------------------- |
313 | ; Get the PTE corresponding to V-addr accessed | 313 | ; Get the PTE corresponding to V-addr accessed |
314 | ; If PTE exists, it will setup, r0 = PTE, r1 = Ptr to PTE | 314 | ; If PTE exists, it will setup, r0 = PTE, r1 = Ptr to PTE, r2 = EFA |
315 | LOAD_FAULT_PTE | 315 | LOAD_FAULT_PTE |
316 | 316 | ||
317 | ;---------------------------------------------------------------- | 317 | ;---------------------------------------------------------------- |