This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-ia64-devel] [PATCH] Reserved Register/Field fault not correct h

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-ia64-devel] [PATCH] Reserved Register/Field fault not correct handled in Xen?
From: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 13 Dec 2006 10:18:27 +0100
Delivery-date: Wed, 13 Dec 2006 01:23:22 -0800
Domainkey-signature: s=s768; d=fujitsu-siemens.com; c=nofws; q=dns; b=LUECxaJ1lzZsTi3laoIU9hNv7LW+0BUUicmmdKRNWV44kiQJBaIhdM1jZ1aKdYJ83g0Kkr37KOwlQl7or13WBw2kSixSFA+vpNLku/R1R3a09zhACOKYF+ABLZCQD7r5;
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <200612121204.03472.dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
References: <200612121204.03472.dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.9.5

here is the patch to the problem described below.
Maybe it's not complete. Any comments are welcome.


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

Attachment: gen_except.patch
Description: Text Data

Xen-ia64-devel mailing list