diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2009-06-26 12:56:04 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2009-06-26 12:56:04 +1000 |
commit | a291e496647620179c3ed6edaf5ebd9f9a24e1d1 (patch) | |
tree | 4929974e6eaf45e58703288fb6ce91ca1c9694b0 /arch | |
parent | 85b3db2ce39074a407d1c536d392667f21aed8a7 (diff) | |
parent | 98ddb33cecfe5752836a3359148ec0469617c8b6 (diff) |
Merge commit 'kgdb/kgdb-next'
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/kgdb.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c index 8d82a77a3f3b..8352c0b9643f 100644 --- a/arch/x86/kernel/kgdb.c +++ b/arch/x86/kernel/kgdb.c @@ -85,10 +85,15 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) gdb_regs[GDB_DS] = regs->ds; gdb_regs[GDB_ES] = regs->es; gdb_regs[GDB_CS] = regs->cs; - gdb_regs[GDB_SS] = __KERNEL_DS; gdb_regs[GDB_FS] = 0xFFFF; gdb_regs[GDB_GS] = 0xFFFF; - gdb_regs[GDB_SP] = (int)®s->sp; + if (user_mode_vm(regs)) { + gdb_regs[GDB_SS] = regs->ss; + gdb_regs[GDB_SP] = regs->sp; + } else { + gdb_regs[GDB_SS] = __KERNEL_DS; + gdb_regs[GDB_SP] = (unsigned long)®s->sp; + } #else gdb_regs[GDB_R8] = regs->r8; gdb_regs[GDB_R9] = regs->r9; |