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-devel] [PATCH] Misaligned IO reads

To: "Ross Maxfield" <rmaxfiel@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [Xen-devel] [PATCH] Misaligned IO reads
From: "Woller, Thomas" <thomas.woller@xxxxxxx>
Date: Tue, 1 Aug 2006 11:15:38 -0500
Delivery-date: Tue, 01 Aug 2006 09:17:19 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <44CE218D.DD28.00D3.0@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Aca06IjV1DfIivumQIaUf2hWj66n2AAnL/uw
Thread-topic: [Xen-devel] [PATCH] Misaligned IO reads
> This patch fixes a data corruption bug in hvm_pio_assist() of 
> xen/arch/x86/hvm/io.c.  When the OVERLAP flag is set and the 
> guest is running in real-mode regs->es is used in the 
> generation of the destination address passed to hvm_copy().  
> regs->es, however, has not been initialized and bad happens.  
> Since __vmread() must be called to obtain regs->es to remedy 
> the bug, this patch instead calls __vmread to obtain the 
> GUEST_LINEAR_ADDRESS which removes the need to check if the 
> guest is in real-mode and hence also the need to adjust addr. 
>  Since this block of code is executed so rarely, there is no 
> measurable performance impact using this fix for real or 
> protected mode guests.
Ross, should a __vmread be in an hvm specific function? Maybe I'm
missing something but a __vmread VT instruction will GP on an AMD SVM
Thanks for any clarification

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>