Commit ef429124 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/fsl_booke: ensure SPEFloatingPointException() reenables interrupts



SPEFloatingPointException() is the only exception handler which 'forgets' to
re-enable interrupts. This patch makes sure it does.

Suggested-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 90f204b9
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2088,6 +2088,10 @@ void SPEFloatingPointException(struct pt_regs *regs)
	int code = FPE_FLTUNK;
	int err;

	/* We restore the interrupt state now */
	if (!arch_irq_disabled_regs(regs))
		local_irq_enable();

	flush_spe_to_thread(current);

	spefscr = current->thread.spefscr;
@@ -2133,6 +2137,10 @@ void SPEFloatingPointRoundException(struct pt_regs *regs)
	extern int speround_handler(struct pt_regs *regs);
	int err;

	/* We restore the interrupt state now */
	if (!arch_irq_disabled_regs(regs))
		local_irq_enable();

	preempt_disable();
	if (regs->msr & MSR_SPE)
		giveup_spe(current);