From: Greg Kroah-Hartman Date: Thu, 19 Oct 2017 09:43:14 +0000 (+0200) Subject: 4.9-stable patches X-Git-Tag: v3.18.77~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7355fe1f87a6c84baf9904d6b20b625c660b2274;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: mips-fix-minimum-alignment-requirement-of-irq-stack.patch --- diff --git a/queue-4.9/mips-fix-minimum-alignment-requirement-of-irq-stack.patch b/queue-4.9/mips-fix-minimum-alignment-requirement-of-irq-stack.patch new file mode 100644 index 00000000000..010539b9c05 --- /dev/null +++ b/queue-4.9/mips-fix-minimum-alignment-requirement-of-irq-stack.patch @@ -0,0 +1,45 @@ +From 5fdc66e046206306bf61ff2d626bfa52ca087f7b Mon Sep 17 00:00:00 2001 +From: Matt Redfearn +Date: Mon, 10 Jul 2017 09:43:31 +0100 +Subject: MIPS: Fix minimum alignment requirement of IRQ stack + +From: Matt Redfearn + +commit 5fdc66e046206306bf61ff2d626bfa52ca087f7b upstream. + +Commit db8466c581cc ("MIPS: IRQ Stack: Unwind IRQ stack onto task +stack") erroneously set the initial stack pointer of the IRQ stack to a +value with a 4 byte alignment. The MIPS32 ABI requires that the minimum +stack alignment is 8 byte, and the MIPS64 ABIs(n32/n64) require 16 byte +minimum alignment. Fix IRQ_STACK_START such that it leaves space for the +dummy stack frame (containing interrupted task kernel stack pointer) +while also meeting minimum alignment requirements. + +Fixes: db8466c581cc ("MIPS: IRQ Stack: Unwind IRQ stack onto task stack") +Reported-by: Darius Ivanauskas +Signed-off-by: Matt Redfearn +Cc: Chris Metcalf +Cc: Petr Mladek +Cc: Aaron Tomlin +Cc: Jason A. Donenfeld +Cc: linux-mips@linux-mips.org +Cc: linux-kernel@vger.kernel.org +Patchwork: https://patchwork.linux-mips.org/patch/16760/ +Signed-off-by: Ralf Baechle +Signed-off-by: Greg Kroah-Hartman + +--- + arch/mips/include/asm/irq.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/mips/include/asm/irq.h ++++ b/arch/mips/include/asm/irq.h +@@ -18,7 +18,7 @@ + #include + + #define IRQ_STACK_SIZE THREAD_SIZE +-#define IRQ_STACK_START (IRQ_STACK_SIZE - sizeof(unsigned long)) ++#define IRQ_STACK_START (IRQ_STACK_SIZE - 16) + + extern void *irq_stack[NR_CPUS]; + diff --git a/queue-4.9/series b/queue-4.9/series new file mode 100644 index 00000000000..93e74ee1202 --- /dev/null +++ b/queue-4.9/series @@ -0,0 +1 @@ +mips-fix-minimum-alignment-requirement-of-irq-stack.patch