diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-06-25 12:35:19 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-07-02 05:56:10 -0400 |
commit | f2741b78b607576f0c256604cb3d9256b3428a32 (patch) | |
tree | 8c608ffc9b52a50a6fcf2eb04acf3a6f646fbef8 | |
parent | bc089602d206b2abc2d2e8e5324d90342cc0447b (diff) |
ARM: entry: consolidate trace_hardirqs_off into (svc|usr)_entry macros
All handlers now call trace_hardirqs_off, so move this common code into
the (svc|usr)_entry assembler macros.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 47 |
1 files changed, 8 insertions, 39 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index f863ee79093e..a5b2c40d44e8 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -179,16 +179,15 @@ ENDPROC(__und_invalid) | |||
179 | @ r6 - orig_r0 (see pt_regs definition in ptrace.h) | 179 | @ r6 - orig_r0 (see pt_regs definition in ptrace.h) |
180 | @ | 180 | @ |
181 | stmia r7, {r2 - r6} | 181 | stmia r7, {r2 - r6} |
182 | .endm | ||
183 | |||
184 | .align 5 | ||
185 | __dabt_svc: | ||
186 | svc_entry | ||
187 | 182 | ||
188 | #ifdef CONFIG_TRACE_IRQFLAGS | 183 | #ifdef CONFIG_TRACE_IRQFLAGS |
189 | bl trace_hardirqs_off | 184 | bl trace_hardirqs_off |
190 | #endif | 185 | #endif |
186 | .endm | ||
191 | 187 | ||
188 | .align 5 | ||
189 | __dabt_svc: | ||
190 | svc_entry | ||
192 | dabt_helper | 191 | dabt_helper |
193 | 192 | ||
194 | @ | 193 | @ |
@@ -219,11 +218,6 @@ ENDPROC(__dabt_svc) | |||
219 | .align 5 | 218 | .align 5 |
220 | __irq_svc: | 219 | __irq_svc: |
221 | svc_entry | 220 | svc_entry |
222 | |||
223 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
224 | bl trace_hardirqs_off | ||
225 | #endif | ||
226 | |||
227 | irq_handler | 221 | irq_handler |
228 | 222 | ||
229 | #ifdef CONFIG_PREEMPT | 223 | #ifdef CONFIG_PREEMPT |
@@ -267,11 +261,6 @@ __und_svc: | |||
267 | #else | 261 | #else |
268 | svc_entry | 262 | svc_entry |
269 | #endif | 263 | #endif |
270 | |||
271 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
272 | bl trace_hardirqs_off | ||
273 | #endif | ||
274 | |||
275 | @ | 264 | @ |
276 | @ call emulation code, which returns using r9 if it has emulated | 265 | @ call emulation code, which returns using r9 if it has emulated |
277 | @ the instruction, or the more conventional lr if we are to treat | 266 | @ the instruction, or the more conventional lr if we are to treat |
@@ -317,11 +306,6 @@ ENDPROC(__und_svc) | |||
317 | .align 5 | 306 | .align 5 |
318 | __pabt_svc: | 307 | __pabt_svc: |
319 | svc_entry | 308 | svc_entry |
320 | |||
321 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
322 | bl trace_hardirqs_off | ||
323 | #endif | ||
324 | |||
325 | pabt_helper | 309 | pabt_helper |
326 | mov r2, sp @ regs | 310 | mov r2, sp @ regs |
327 | bl do_PrefetchAbort @ call abort handler | 311 | bl do_PrefetchAbort @ call abort handler |
@@ -401,6 +385,10 @@ ENDPROC(__pabt_svc) | |||
401 | @ Clear FP to mark the first stack frame | 385 | @ Clear FP to mark the first stack frame |
402 | @ | 386 | @ |
403 | zero_fp | 387 | zero_fp |
388 | |||
389 | #ifdef CONFIG_IRQSOFF_TRACER | ||
390 | bl trace_hardirqs_off | ||
391 | #endif | ||
404 | .endm | 392 | .endm |
405 | 393 | ||
406 | .macro kuser_cmpxchg_check | 394 | .macro kuser_cmpxchg_check |
@@ -421,11 +409,6 @@ ENDPROC(__pabt_svc) | |||
421 | .align 5 | 409 | .align 5 |
422 | __dabt_usr: | 410 | __dabt_usr: |
423 | usr_entry | 411 | usr_entry |
424 | |||
425 | #ifdef CONFIG_IRQSOFF_TRACER | ||
426 | bl trace_hardirqs_off | ||
427 | #endif | ||
428 | |||
429 | kuser_cmpxchg_check | 412 | kuser_cmpxchg_check |
430 | dabt_helper | 413 | dabt_helper |
431 | 414 | ||
@@ -438,11 +421,6 @@ ENDPROC(__dabt_usr) | |||
438 | .align 5 | 421 | .align 5 |
439 | __irq_usr: | 422 | __irq_usr: |
440 | usr_entry | 423 | usr_entry |
441 | |||
442 | #ifdef CONFIG_IRQSOFF_TRACER | ||
443 | bl trace_hardirqs_off | ||
444 | #endif | ||
445 | |||
446 | kuser_cmpxchg_check | 424 | kuser_cmpxchg_check |
447 | irq_handler | 425 | irq_handler |
448 | get_thread_info tsk | 426 | get_thread_info tsk |
@@ -457,10 +435,6 @@ ENDPROC(__irq_usr) | |||
457 | __und_usr: | 435 | __und_usr: |
458 | usr_entry | 436 | usr_entry |
459 | 437 | ||
460 | #ifdef CONFIG_IRQSOFF_TRACER | ||
461 | bl trace_hardirqs_off | ||
462 | #endif | ||
463 | |||
464 | mov r2, r4 | 438 | mov r2, r4 |
465 | mov r3, r5 | 439 | mov r3, r5 |
466 | 440 | ||
@@ -679,11 +653,6 @@ ENDPROC(__und_usr_unknown) | |||
679 | .align 5 | 653 | .align 5 |
680 | __pabt_usr: | 654 | __pabt_usr: |
681 | usr_entry | 655 | usr_entry |
682 | |||
683 | #ifdef CONFIG_IRQSOFF_TRACER | ||
684 | bl trace_hardirqs_off | ||
685 | #endif | ||
686 | |||
687 | pabt_helper | 656 | pabt_helper |
688 | mov r2, sp @ regs | 657 | mov r2, sp @ regs |
689 | bl do_PrefetchAbort @ call abort handler | 658 | bl do_PrefetchAbort @ call abort handler |