From: Al Viro Date: Sat, 25 Sep 2010 20:07:51 +0000 (+0100) Subject: alpha: fix usp value in multithreaded coredumps X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=32163f4b2cef28a5aab8b226ffecfc6379a53786;p=openwrt%2Fstaging%2Fblogic.git alpha: fix usp value in multithreaded coredumps rdusp() gives us the right value only for the current thread... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds --- diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c index 842dba308eab..3ec35066f1dc 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