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: Steven J. Magnani <steve@digidescorp.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
Родитель
7823860ca2
Коммит
58424a49cb
|
@ -122,7 +122,7 @@ ENTRY(_interrupt)
|
|||
|
||||
ret_from_intr:
|
||||
lwi r11, r1, PT_MODE
|
||||
bneid r11, 3f
|
||||
bneid r11, no_intr_resched
|
||||
|
||||
lwi r6, r31, TS_THREAD_INFO /* get thread info */
|
||||
lwi r19, r6, TI_FLAGS /* get flags in thread info */
|
||||
|
@ -133,16 +133,18 @@ ret_from_intr:
|
|||
bralid r15, schedule
|
||||
nop
|
||||
1: andi r11, r19, _TIF_SIGPENDING
|
||||
beqid r11, no_intr_reshed
|
||||
beqid r11, no_intr_resched
|
||||
addk r5, r1, r0
|
||||
addk r7, r0, r0
|
||||
bralid r15, do_signal
|
||||
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 */
|
||||
lwi r11, r1, PT_MODE
|
||||
3:
|
||||
swi r11, r0, PER_CPU(KM)
|
||||
|
||||
/* save r31 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче