mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-07 03:18:31 +00:00
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:
parent
7823860ca2
commit
58424a49cb
1 changed files with 6 additions and 4 deletions
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue