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 */