Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] vmx realmode: Multiple I/O reads to qemu

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] vmx realmode: Multiple I/O reads to qemu in an instruction is not
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 28 Jan 2008 10:40:08 -0800
Delivery-date: Mon, 28 Jan 2008 10:40:11 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1201519735 0
# Node ID ed2ca78286a8c30ab68e37c7eccae6d1748f0d50
# Parent  ed8ab1a36b09b8f952d36943180ac079144144f5
vmx realmode: Multiple I/O reads to qemu in an instruction is not
allowed. But we do allow, for example, a read followed by a write
(e.g., MOVS within video RAM).
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 xen/arch/x86/hvm/vmx/realmode.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff -r ed8ab1a36b09 -r ed2ca78286a8 xen/arch/x86/hvm/vmx/realmode.c
--- a/xen/arch/x86/hvm/vmx/realmode.c   Mon Jan 28 10:17:05 2008 +0000
+++ b/xen/arch/x86/hvm/vmx/realmode.c   Mon Jan 28 11:28:55 2008 +0000
@@ -534,12 +534,6 @@ static void realmode_emulate_one(struct 
         goto fail;
     }
 
-    if ( io_completed && curr->arch.hvm_vmx.real_mode_io_in_progress )
-    {
-        gdprintk(XENLOG_ERR, "Multiple I/O transactions in a single insn.\n");
-        goto fail;
-    }
-
     if ( rc == X86EMUL_UNHANDLEABLE )
     {
         gdprintk(XENLOG_ERR, "Failed to emulate insn.\n");
@@ -547,7 +541,13 @@ static void realmode_emulate_one(struct 
     }
 
     if ( rc == X86EMUL_RETRY )
-        return;
+    {
+        BUG_ON(!curr->arch.hvm_vmx.real_mode_io_in_progress);
+        if ( !io_completed )
+            return;
+        gdprintk(XENLOG_ERR, "Multiple I/O reads in a single insn.\n");
+        goto fail;
+    }
 
     if ( curr->arch.hvm_vmx.real_mode_io_in_progress &&
          (get_ioreq(curr)->vp_ioreq.dir == IOREQ_READ) )

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] vmx realmode: Multiple I/O reads to qemu in an instruction is not, Xen patchbot-unstable <=