From: Russell King Date: Sat, 18 Jun 2005 08:06:59 +0000 (+0100) Subject: Merge with ../linux-2.6-smp X-Git-Tag: v2.6.13-rc1~90^2~583^2~52^2 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=5ab6091db0b644f59c2f16c5e41028496b709160;p=karo-tx-linux.git Merge with ../linux-2.6-smp --- 5ab6091db0b644f59c2f16c5e41028496b709160 diff --cc arch/arm/kernel/entry-armv.S index e14278d59882,78cf84cdc2ae..39a6c1b0b9a3 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@@ -262,14 -297,18 +297,18 @@@ __pabt_svc /* * User mode handlers */ - .macro usr_entry, sym - sub sp, sp, #S_FRAME_SIZE @ Allocate frame size in one go - stmia sp, {r0 - r12} @ save r0 - r12 - ldr r7, .LC\sym - add r5, sp, #S_PC - ldmia r7, {r2 - r4} @ Get USR pc, cpsr + .macro usr_entry + sub sp, sp, #S_FRAME_SIZE + stmib sp, {r1 - r12} + + ldmia r0, {r1 - r3} + add r0, sp, #S_PC @ here for interlock avoidance + mov r4, #-1 @ "" "" "" "" + + str r1, [sp] @ save the "real" r0 copied + @ from the exception stack -#if __LINUX_ARM_ARCH__ < 6 +#if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG) @ make sure our user space atomic helper is aborted cmp r2, #VIRT_OFFSET bichs r3, r3, #PSR_Z_BIT