diff options
| -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 | /* |
