debuggers.hg
changeset 3731:bbe2a077f3b5
bitkeeper revision 1.1159.223.75 (42078dd8VBcyJ0X9yF-bRHcBVUJ3Ww)
As pointed out on the xen-devel list, the vm86 call was not very robust in
Xen.
It turned out to be due to a missing check in the pagefault handler,
determining whether the pagefault came from userspace or from the kernel.
Now the syscall-crash tool doesn't cause any "Oops" on the vm86 calls anymore.
From: Stephan Diestelhorst <sd386@cam.ac.uk>
Signed-off-by: ian.pratt@cl.cam.ac.uk
As pointed out on the xen-devel list, the vm86 call was not very robust in
Xen.
It turned out to be due to a missing check in the pagefault handler,
determining whether the pagefault came from userspace or from the kernel.
Now the syscall-crash tool doesn't cause any "Oops" on the vm86 calls anymore.
From: Stephan Diestelhorst <sd386@cam.ac.uk>
Signed-off-by: ian.pratt@cl.cam.ac.uk
author | iap10@labyrinth.cl.cam.ac.uk |
---|---|
date | Mon Feb 07 15:48:40 2005 +0000 (2005-02-07) |
parents | ef95f070a233 |
children | 75266d5ca7ca b555b108ca0d |
files | linux-2.6.10-xen-sparse/arch/xen/i386/mm/fault.c |
line diff
1.1 --- a/linux-2.6.10-xen-sparse/arch/xen/i386/mm/fault.c Mon Feb 07 11:57:29 2005 +0000 1.2 +++ b/linux-2.6.10-xen-sparse/arch/xen/i386/mm/fault.c Mon Feb 07 15:48:40 2005 +0000 1.3 @@ -228,7 +228,9 @@ fastcall void do_page_fault(struct pt_re 1.4 /* Set the "privileged fault" bit to something sane. */ 1.5 error_code &= 3; 1.6 error_code |= (regs->xcs & 2) << 1; 1.7 - 1.8 + if (regs->eflags & X86_EFLAGS_VM) 1.9 + error_code |= 4; 1.10 + 1.11 if (notify_die(DIE_PAGE_FAULT, "page fault", regs, error_code, 14, 1.12 SIGSEGV) == NOTIFY_STOP) 1.13 return;