From: John David Anglin Date: Sun, 11 Apr 2010 17:12:56 +0000 (+0000) Subject: parisc: Avoid interruption in critical region in entry.S X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=8f6c0c2bf1d4cc626588ca6f8dc642df34c0d26d;p=openwrt%2Fstaging%2Fblogic.git parisc: Avoid interruption in critical region in entry.S Signed-off-by: John David Anglin Signed-off-by: Kyle McMartin --- diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index 3a44f7f704fa..ba86f610e76f 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S @@ -2076,9 +2076,10 @@ syscall_restore: LDREG TASK_PT_GR31(%r1),%r31 /* restore syscall rp */ /* NOTE: We use rsm/ssm pair to make this operation atomic */ + LDREG TASK_PT_GR30(%r1),%r1 /* Get user sp */ rsm PSW_SM_I, %r0 - LDREG TASK_PT_GR30(%r1),%r30 /* restore user sp */ - mfsp %sr3,%r1 /* Get users space id */ + copy %r1,%r30 /* Restore user sp */ + mfsp %sr3,%r1 /* Get user space id */ mtsp %r1,%sr7 /* Restore sr7 */ ssm PSW_SM_I, %r0