2006-01-09 03:19:18

by Jeff Dike

[permalink] [raw]
Subject: [PATCH 5/6] UML - Fix debug output on x86_64

The debug-stub patch was broken on x86_64 because it thinks the
frame size there is 168 words. In reality, it is 168 bytes, and
using HOST_FRAME_SIZE, which is expressed in consistent units across
architectures, fixes this.

Signed-off-by: Jeff Dike <[email protected]>

Index: linux-2.6.15/arch/um/kernel/skas/process.c
===================================================================
--- linux-2.6.15.orig/arch/um/kernel/skas/process.c 2006-01-05 16:19:59.000000000 -0500
+++ linux-2.6.15/arch/um/kernel/skas/process.c 2006-01-05 17:44:53.000000000 -0500
@@ -68,7 +68,7 @@ void wait_stub_done(int pid, int sig, ch

if((n < 0) || !WIFSTOPPED(status) ||
(WSTOPSIG(status) != SIGUSR1 && WSTOPSIG(status) != SIGTRAP)){
- unsigned long regs[FRAME_SIZE];
+ unsigned long regs[HOST_FRAME_SIZE];
if(ptrace(PTRACE_GETREGS, pid, 0, regs) < 0)
printk("Failed to get registers from stub, "
"errno = %d\n", errno);
@@ -76,7 +76,7 @@ void wait_stub_done(int pid, int sig, ch
int i;

printk("Stub registers -\n");
- for(i = 0; i < FRAME_SIZE; i++)
+ for(i = 0; i < HOST_FRAME_SIZE; i++)
printk("\t%d - %lx\n", i, regs[i]);
}
panic("%s : failed to wait for SIGUSR1/SIGTRAP, "