aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arc/mm/tlbex.S
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2013-06-17 05:03:15 -0400
committerVineet Gupta <vgupta@synopsys.com>2013-06-27 05:07:57 -0400
commitdc81df244028e0d07c8723e3f7ebd1a35e848293 (patch)
tree40aafc02150025631b15dc514469ff74318e71e6 /arch/arc/mm/tlbex.S
parentc3e757a77cab461d11cd3e365d700e8c8fb3fae0 (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.S10
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]
1531: 1531:
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 ;----------------------------------------------------------------