diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 6 | ||||
-rw-r--r-- | arch/arm/kernel/entry-common.S | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index e8d885676807..90c62cd51ca9 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -435,6 +435,10 @@ __irq_usr: | |||
435 | usr_entry | 435 | usr_entry |
436 | kuser_cmpxchg_check | 436 | kuser_cmpxchg_check |
437 | 437 | ||
438 | #ifdef CONFIG_IRQSOFF_TRACER | ||
439 | bl trace_hardirqs_off | ||
440 | #endif | ||
441 | |||
438 | get_thread_info tsk | 442 | get_thread_info tsk |
439 | #ifdef CONFIG_PREEMPT | 443 | #ifdef CONFIG_PREEMPT |
440 | ldr r8, [tsk, #TI_PREEMPT] @ get preempt count | 444 | ldr r8, [tsk, #TI_PREEMPT] @ get preempt count |
@@ -453,7 +457,7 @@ __irq_usr: | |||
453 | #endif | 457 | #endif |
454 | 458 | ||
455 | mov why, #0 | 459 | mov why, #0 |
456 | b ret_to_user | 460 | b ret_to_user_from_irq |
457 | UNWIND(.fnend ) | 461 | UNWIND(.fnend ) |
458 | ENDPROC(__irq_usr) | 462 | ENDPROC(__irq_usr) |
459 | 463 | ||
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 1e7b04a40a31..b2a27b6b0046 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -64,6 +64,7 @@ work_resched: | |||
64 | ENTRY(ret_to_user) | 64 | ENTRY(ret_to_user) |
65 | ret_slow_syscall: | 65 | ret_slow_syscall: |
66 | disable_irq @ disable interrupts | 66 | disable_irq @ disable interrupts |
67 | ENTRY(ret_to_user_from_irq) | ||
67 | ldr r1, [tsk, #TI_FLAGS] | 68 | ldr r1, [tsk, #TI_FLAGS] |
68 | tst r1, #_TIF_WORK_MASK | 69 | tst r1, #_TIF_WORK_MASK |
69 | bne work_pending | 70 | bne work_pending |
@@ -75,6 +76,7 @@ no_work_pending: | |||
75 | arch_ret_to_user r1, lr | 76 | arch_ret_to_user r1, lr |
76 | 77 | ||
77 | restore_user_regs fast = 0, offset = 0 | 78 | restore_user_regs fast = 0, offset = 0 |
79 | ENDPROC(ret_to_user_from_irq) | ||
78 | ENDPROC(ret_to_user) | 80 | ENDPROC(ret_to_user) |
79 | 81 | ||
80 | /* | 82 | /* |