summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-10-12 14:09:07 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-10-12 14:19:34 -0700
commitdef3c5d0a34e4b09b3cea4435c17209ad347104d (patch)
treef9a38b4908dc05a1a5c33a351cd821c0c49adad3 /arch
parentd93a8f829fe1d2f3002f2c6ddb553d12db420412 (diff)
downloadlinux-def3c5d0a34e4b09b3cea4435c17209ad347104d.tar.gz
linux-def3c5d0a34e4b09b3cea4435c17209ad347104d.tar.bz2
linux-def3c5d0a34e4b09b3cea4435c17209ad347104d.zip
x86: use kernel_stack_pointer() in process_32.c
The way to obtain a kernel-mode stack pointer from a struct pt_regs in 32-bit mode is "subtle": the stack doesn't actually contain the stack pointer, but rather the location where it would have been marks the actual previous stack frame. For clarity, use kernel_stack_pointer() instead of coding this weirdness explicitly. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/process_32.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 4cf79567cdab..35e6fad73e0d 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -134,7 +134,7 @@ void __show_regs(struct pt_regs *regs, int all)
ss = regs->ss & 0xffff;
gs = get_user_gs(regs);
} else {
- sp = (unsigned long) (&regs->sp);
+ sp = kernel_stack_pointer(regs);
savesegment(ss, ss);
savesegment(gs, gs);
}