Skip to content

Commit

Permalink
microblaze: fix interrupt state restore
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
  • Loading branch information
smagnani authored and michalsimek committed Feb 3, 2010
1 parent 7823860 commit 58424a4
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions arch/microblaze/kernel/entry-nommu.S
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand All @@ -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 */
Expand Down

0 comments on commit 58424a4

Please sign in to comment.