|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   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 <=
 |  |  | 
  
    |  |  |