diff options
Diffstat (limited to 'arch/sh/kernel/entry-common.S')
| -rw-r--r-- | arch/sh/kernel/entry-common.S | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S index 0bc17def55a7..efbb4268875e 100644 --- a/arch/sh/kernel/entry-common.S +++ b/arch/sh/kernel/entry-common.S | |||
| @@ -92,6 +92,7 @@ ENTRY(ret_from_irq) | |||
| 92 | bra resume_userspace | 92 | bra resume_userspace |
| 93 | nop | 93 | nop |
| 94 | ENTRY(resume_kernel) | 94 | ENTRY(resume_kernel) |
| 95 | cli | ||
| 95 | mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count | 96 | mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count |
| 96 | tst r0, r0 | 97 | tst r0, r0 |
| 97 | bf noresched | 98 | bf noresched |
| @@ -105,28 +106,9 @@ need_resched: | |||
| 105 | and #0xf0, r0 ! interrupts off (exception path)? | 106 | and #0xf0, r0 ! interrupts off (exception path)? |
| 106 | cmp/eq #0xf0, r0 | 107 | cmp/eq #0xf0, r0 |
| 107 | bt noresched | 108 | bt noresched |
| 108 | |||
| 109 | mov.l 1f, r0 | ||
| 110 | mov.l r0, @(TI_PRE_COUNT,r8) | ||
| 111 | |||
| 112 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
| 113 | mov.l 3f, r0 | 109 | mov.l 3f, r0 |
| 114 | jsr @r0 | 110 | jsr @r0 ! call preempt_schedule_irq |
| 115 | nop | ||
| 116 | #endif | ||
| 117 | sti | ||
| 118 | mov.l 2f, r0 | ||
| 119 | jsr @r0 | ||
| 120 | nop | ||
| 121 | mov #0, r0 | ||
| 122 | mov.l r0, @(TI_PRE_COUNT,r8) | ||
| 123 | cli | ||
| 124 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
| 125 | mov.l 4f, r0 | ||
| 126 | jsr @r0 | ||
| 127 | nop | 111 | nop |
| 128 | #endif | ||
| 129 | |||
| 130 | bra need_resched | 112 | bra need_resched |
| 131 | nop | 113 | nop |
| 132 | 114 | ||
| @@ -137,10 +119,7 @@ noresched: | |||
| 137 | .align 2 | 119 | .align 2 |
| 138 | 1: .long PREEMPT_ACTIVE | 120 | 1: .long PREEMPT_ACTIVE |
| 139 | 2: .long schedule | 121 | 2: .long schedule |
| 140 | #ifdef CONFIG_TRACE_IRQFLAGS | 122 | 3: .long preempt_schedule_irq |
| 141 | 3: .long trace_hardirqs_on | ||
| 142 | 4: .long trace_hardirqs_off | ||
| 143 | #endif | ||
| 144 | #endif | 123 | #endif |
| 145 | 124 | ||
| 146 | ENTRY(resume_userspace) | 125 | ENTRY(resume_userspace) |
