From bb268230c4cbf2408e9f0f2d228e7e034c5d376b Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Mon, 24 Jun 2013 14:35:25 +0200 Subject: [PATCH] kernel: maintain stack alignment . 'fixes' 64-bit varargs (i.e. printf("%llu", ..)) argument retrieval bug --- kernel/arch/earm/mpx.S | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/arch/earm/mpx.S b/kernel/arch/earm/mpx.S index 77b7d9d07..c86578e2c 100644 --- a/kernel/arch/earm/mpx.S +++ b/kernel/arch/earm/mpx.S @@ -130,6 +130,7 @@ irq_entry_from_user: ldr fp, [sp] push {fp} /* save caller proc ptr */ + sub sp, sp, #4 /* maintain stack alignment */ /* stop user process cycles */ mov r0, fp /* first param: caller proc ptr */ @@ -139,6 +140,7 @@ irq_entry_from_user: /* call handler */ bl _C_LABEL(omap3_irq_handle) /* omap3_irq_handle(void) */ + add sp, sp, #4 pop {fp} /* caller proc ptr */ /* data synchronization barrier */ -- 2.44.0