From: Ben Gras Date: Mon, 24 Jun 2013 12:35:25 +0000 (+0200) Subject: kernel: maintain stack alignment X-Git-Tag: v3.3.0~902 X-Git-Url: http://zhaoyanbai.com/repos/Bv9ARM.ch02.html?a=commitdiff_plain;h=bb268230c4cbf2408e9f0f2d228e7e034c5d376b;p=minix.git kernel: maintain stack alignment . 'fixes' 64-bit varargs (i.e. printf("%llu", ..)) argument retrieval bug --- 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 */