Commit 58424a49 authored by Steven J. Magnani's avatar Steven J. Magnani Committed by Michal Simek

microblaze: fix interrupt state restore

Interrupts must be disabled while an interrupt state restore
(prep for interrupt return) is in progress.
Code to do this was lost in the port to the mainline kernel.
Signed-off-by: default avatarSteven J. Magnani <steve@digidescorp.com>
Signed-off-by: default avatarMichal Simek <monstr@monstr.eu>
parent 7823860c
...@@ -122,7 +122,7 @@ ENTRY(_interrupt) ...@@ -122,7 +122,7 @@ ENTRY(_interrupt)
ret_from_intr: ret_from_intr:
lwi r11, r1, PT_MODE lwi r11, r1, PT_MODE
bneid r11, 3f bneid r11, no_intr_resched
lwi r6, r31, TS_THREAD_INFO /* get thread info */ lwi r6, r31, TS_THREAD_INFO /* get thread info */
lwi r19, r6, TI_FLAGS /* get flags in thread info */ lwi r19, r6, TI_FLAGS /* get flags in thread info */
...@@ -133,16 +133,18 @@ ret_from_intr: ...@@ -133,16 +133,18 @@ ret_from_intr:
bralid r15, schedule bralid r15, schedule
nop nop
1: andi r11, r19, _TIF_SIGPENDING 1: andi r11, r19, _TIF_SIGPENDING
beqid r11, no_intr_reshed beqid r11, no_intr_resched
addk r5, r1, r0 addk r5, r1, r0
addk r7, r0, r0 addk r7, r0, r0
bralid r15, do_signal bralid r15, do_signal
addk r6, r0, r0 addk r6, r0, r0
no_intr_reshed: no_intr_resched:
/* Disable interrupts, we are now committed to the state restore */
disable_irq
/* save mode indicator */ /* save mode indicator */
lwi r11, r1, PT_MODE lwi r11, r1, PT_MODE
3:
swi r11, r0, PER_CPU(KM) swi r11, r0, PER_CPU(KM)
/* save r31 */ /* save r31 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment