Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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 */