summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2010-09-25 21:07:51 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2010-09-25 14:38:13 -0700
commit32163f4b2cef28a5aab8b226ffecfc6379a53786 (patch)
treec4e1412c1aba536551b4ff5f30cbe788e524694c
parent77edffb652b33a565e099ff0a1687762f03eb46a (diff)
alpha: fix usp value in multithreaded coredumps
rdusp() gives us the right value only for the current thread... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/alpha/kernel/process.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c
index 842dba308ea..3ec35066f1d 100644
--- a/arch/alpha/kernel/process.c
+++ b/arch/alpha/kernel/process.c
@@ -356,7 +356,7 @@ dump_elf_thread(elf_greg_t *dest, struct pt_regs *pt, struct thread_info *ti)
dest[27] = pt->r27;
dest[28] = pt->r28;
dest[29] = pt->gp;
- dest[30] = rdusp();
+ dest[30] = ti == current_thread_info() ? rdusp() : ti->pcb.usp;
dest[31] = pt->pc;
/* Once upon a time this was the PS value. Which is stupid