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

Commit 4291b730 authored by Paul Mundt's avatar Paul Mundt
Browse files

sh: Need IRQs enabled for init_fpu().



This tosses in a local_irq_enable()/disable() pair around the init_fpu()
callsite in the FPU state restore exception handler. Fixes up a slab BUG
triggered by making a slab cache allocation that can sleep whilst
irqs_disabled(). This follows the behaviour undertaken by the x86
implementation.

Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 3d467676
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ void fpu_state_restore(struct pt_regs *regs)
	}

	if (!tsk_used_math(tsk)) {
		local_irq_enable();
		/*
		 * does a slab alloc which can sleep
		 */
@@ -66,6 +67,7 @@ void fpu_state_restore(struct pt_regs *regs)
			do_group_exit(SIGKILL);
			return;
		}
		local_irq_disable();
	}

	grab_fpu(regs);