diff options
Diffstat (limited to 'arch/microblaze/kernel/entry-nommu.S')
-rw-r--r-- | arch/microblaze/kernel/entry-nommu.S | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/microblaze/kernel/entry-nommu.S b/arch/microblaze/kernel/entry-nommu.S index 95b0855802df..391d6197fc3b 100644 --- a/arch/microblaze/kernel/entry-nommu.S +++ b/arch/microblaze/kernel/entry-nommu.S | |||
@@ -122,7 +122,7 @@ ENTRY(_interrupt) | |||
122 | 122 | ||
123 | ret_from_intr: | 123 | ret_from_intr: |
124 | lwi r11, r1, PT_MODE | 124 | lwi r11, r1, PT_MODE |
125 | bneid r11, 3f | 125 | bneid r11, no_intr_resched |
126 | 126 | ||
127 | lwi r6, r31, TS_THREAD_INFO /* get thread info */ | 127 | lwi r6, r31, TS_THREAD_INFO /* get thread info */ |
128 | lwi r19, r6, TI_FLAGS /* get flags in thread info */ | 128 | lwi r19, r6, TI_FLAGS /* get flags in thread info */ |
@@ -133,16 +133,18 @@ ret_from_intr: | |||
133 | bralid r15, schedule | 133 | bralid r15, schedule |
134 | nop | 134 | nop |
135 | 1: andi r11, r19, _TIF_SIGPENDING | 135 | 1: andi r11, r19, _TIF_SIGPENDING |
136 | beqid r11, no_intr_reshed | 136 | beqid r11, no_intr_resched |
137 | addk r5, r1, r0 | 137 | addk r5, r1, r0 |
138 | addk r7, r0, r0 | 138 | addk r7, r0, r0 |
139 | bralid r15, do_signal | 139 | bralid r15, do_signal |
140 | addk r6, r0, r0 | 140 | addk r6, r0, r0 |
141 | 141 | ||
142 | no_intr_reshed: | 142 | no_intr_resched: |
143 | /* Disable interrupts, we are now committed to the state restore */ | ||
144 | disable_irq | ||
145 | |||
143 | /* save mode indicator */ | 146 | /* save mode indicator */ |
144 | lwi r11, r1, PT_MODE | 147 | lwi r11, r1, PT_MODE |
145 | 3: | ||
146 | swi r11, r0, PER_CPU(KM) | 148 | swi r11, r0, PER_CPU(KM) |
147 | 149 | ||
148 | /* save r31 */ | 150 | /* save r31 */ |