|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
Re: [Xen-ia64-devel] [PATCH] Reserved Register/Field fault not correct h
Hi,
here is the patch to the problem described below.
Maybe it's not complete. Any comments are welcome.
Thanks.
Dietmar
> I had a closer look to my problem described on
> http://lists.xensource.com/archives/html/xen-ia64-devel/2006-12/msg00120.ht
>ml. Now I can reproduce the panic in Xen with a dom0-user program.
> The instructions
> movl r16=0xff;;
> mov ar.rsc=r16
> lead to a general exception with function code 0x30 (Reserved
> Register/Field fault).
> The trap handler in ivt.S checks only function code <=0x20.
> The other exceptions call dispatch_to_fault_handler() and further
> ia64_fault().
> In ia64_fault() there is only a check on function code 0x80 (Illegal
> dependency fault). The function codes 0x30 (Reserved Register/Field fault)
> and 0x40 lead to the xen-panic!
> It seems the code was copied from the linux ia64_fault() routine. But there
> is a call of die_if_kernel(...) and if not kernel a call of
> force_sig(SIGILL, ...) to kill the user process.
> I believe the solution is here to use FAULT_OR_REFLECT(24) in the trap
> handler if the function code is > 0x20 and to extend the
> ia64_handle_reflection() with handling the vector=24.
> With this 2 fixes the user program gets a SIGILL like on native linux.
> and my mini-os traphandler gets called from the hypervisor, so I can handle
> the trap on my own.
gen_except.patch
Description: Text Data
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
|
|
|
|