aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc
diff options
context:
space:
mode:
authorJohn David Anglin <dave@hiauly1.hia.nrc.ca>2010-04-11 13:12:56 -0400
committerKyle McMartin <kyle@dreadnought.i.jkkm.org>2010-05-30 05:44:36 -0400
commit8f6c0c2bf1d4cc626588ca6f8dc642df34c0d26d (patch)
treee977c2a0e241876add6828dcf4712ed63b1f2659 /arch/parisc
parent53e30d022769434327a682d65031f129cd5d9c33 (diff)
parisc: Avoid interruption in critical region in entry.S
Signed-off-by: John David Anglin <dave.anglin@nrc-cnrc.gc.ca> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Diffstat (limited to 'arch/parisc')
-rw-r--r--arch/parisc/kernel/entry.S5
1 files changed, 3 insertions, 2 deletions
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:
2076 LDREG TASK_PT_GR31(%r1),%r31 /* restore syscall rp */ 2076 LDREG TASK_PT_GR31(%r1),%r31 /* restore syscall rp */
2077 2077
2078 /* NOTE: We use rsm/ssm pair to make this operation atomic */ 2078 /* NOTE: We use rsm/ssm pair to make this operation atomic */
2079 LDREG TASK_PT_GR30(%r1),%r1 /* Get user sp */
2079 rsm PSW_SM_I, %r0 2080 rsm PSW_SM_I, %r0
2080 LDREG TASK_PT_GR30(%r1),%r30 /* restore user sp */ 2081 copy %r1,%r30 /* Restore user sp */
2081 mfsp %sr3,%r1 /* Get users space id */ 2082 mfsp %sr3,%r1 /* Get user space id */
2082 mtsp %r1,%sr7 /* Restore sr7 */ 2083 mtsp %r1,%sr7 /* Restore sr7 */
2083 ssm PSW_SM_I, %r0 2084 ssm PSW_SM_I, %r0
2084 2085