From: Steven J. Magnani <[email protected]>

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]>

 arch/microblaze/kernel/entry-nommu.S |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

---

http://git.linuxtv.org/v4l-dvb.git?a=commitdiff;h=58424a49cb99c4ad9386b47f885b352476313a02

diff --git a/arch/microblaze/kernel/entry-nommu.S 
b/arch/microblaze/kernel/entry-nommu.S
index 95b0855..391d619 100644
--- a/arch/microblaze/kernel/entry-nommu.S
+++ b/arch/microblaze/kernel/entry-nommu.S
@@ -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 */

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to