|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
[Xen-ia64-devel] Reserved Register/Field fault not correct handled in Xe
Hi,
I had a closer look to my problem described on
http://lists.xensource.com/archives/html/xen-ia64-devel/2006-12/msg00120.html.
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.
Do I see something complete wrong or should I send a patch?
Thanks.
Dietmar.
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-ia64-devel] Reserved Register/Field fault not correct handled in Xen?,
Dietmar Hahn <=
|
|
|
|
|