diff options
author | cl349@arcadians.cl.cam.ac.uk <cl349@arcadians.cl.cam.ac.uk> | 2005-02-11 16:28:22 +0000 |
---|---|---|
committer | cl349@arcadians.cl.cam.ac.uk <cl349@arcadians.cl.cam.ac.uk> | 2005-02-11 16:28:22 +0000 |
commit | a20f62e8f83830438cd81cef224652c86224ed50 (patch) | |
tree | df0682a28f4a85e2fbca2778219071f6b4b08854 | |
parent | 4db4e4f09f85c3905b01c37ad0dc4f1d59ffe2bb (diff) | |
download | xen-a20f62e8f83830438cd81cef224652c86224ed50.tar.gz xen-a20f62e8f83830438cd81cef224652c86224ed50.tar.bz2 xen-a20f62e8f83830438cd81cef224652c86224ed50.zip |
bitkeeper revision 1.1159.258.2 (420cdd26biP1GgUIcVSoyZGOZjAu2A)
Pass pointer to register set to set_pre_exception_table instead of eip.
Signed-off-by: cl349@cl.cam.ac.uk
-rw-r--r-- | xen/arch/x86/extable.c | 3 | ||||
-rw-r--r-- | xen/arch/x86/x86_32/entry.S | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/xen/arch/x86/extable.c b/xen/arch/x86/extable.c index d3292027e0..bb70a3842b 100644 --- a/xen/arch/x86/extable.c +++ b/xen/arch/x86/extable.c @@ -63,8 +63,9 @@ search_exception_table(unsigned long addr) } unsigned long -search_pre_exception_table(unsigned long addr) +search_pre_exception_table(struct xen_regs *regs) { + unsigned long addr = (unsigned long)regs->eip; unsigned long fixup = search_one_table( __start___pre_ex_table, __stop___pre_ex_table-1, addr); DPRINTK("Pre-exception: %08lx -> %08lx\n", addr, fixup); diff --git a/xen/arch/x86/x86_32/entry.S b/xen/arch/x86/x86_32/entry.S index 1afeded9c9..aaf6caccef 100644 --- a/xen/arch/x86/x86_32/entry.S +++ b/xen/arch/x86/x86_32/entry.S @@ -379,7 +379,7 @@ exception_with_ints_disabled: testl $(3|X86_EFLAGS_VM),%eax # interrupts disabled outside Xen? jnz 1b # it really does happen! # (e.g., DOM0 X server) - pushl XREGS_eip(%esp) + pushl %esp call search_pre_exception_table addl $4,%esp testl %eax,%eax # no fixup code for faulting EIP? |