diff options
author | John David Anglin <dave@hiauly1.hia.nrc.ca> | 2010-04-11 13:12:56 -0400 |
---|---|---|
committer | Kyle McMartin <kyle@dreadnought.i.jkkm.org> | 2010-05-30 05:44:36 -0400 |
commit | 8f6c0c2bf1d4cc626588ca6f8dc642df34c0d26d (patch) | |
tree | e977c2a0e241876add6828dcf4712ed63b1f2659 /arch/parisc/kernel | |
parent | 53e30d022769434327a682d65031f129cd5d9c33 (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/kernel')
-rw-r--r-- | arch/parisc/kernel/entry.S | 5 |
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 | ||