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


[Xen-changelog] [xen-unstable] x86/hvm: Crash domain rather than guest o

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86/hvm: Crash domain rather than guest on unexpected PIO IO state
From: Xen patchbot-unstable <patchbot@xxxxxxx>
Date: Thu, 16 Jun 2011 11:12:58 +0100
Delivery-date: Thu, 16 Jun 2011 03:34:50 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/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 George Dunlap <george.dunlap@xxxxxxxxxxxxx>
# Date 1308150314 -3600
# Node ID 35b4220c98bc89b7162d19ed6c858e027fabff69
# Parent  cac82bc1ea23bc213ece4c84db2703dd46df7f25
x86/hvm: Crash domain rather than guest on unexpected PIO IO state

Under certain conditions, if an IO gets into an unexpected state,
hvmemul_do_io can return X86EMUL_UNHANDLEABLE.  Unfortunately,
handle_pio() does not expect this state, and calls BUG() if it sees
it, crashing the host.

Other HVM io-related code crashes the guest in this case.  This patch
makes handle_pio() do the same.

The crash was seen when executing crash_guest in dom0 to forcibly
crash the guest.

Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>

diff -r cac82bc1ea23 -r 35b4220c98bc xen/arch/x86/hvm/io.c
--- a/xen/arch/x86/hvm/io.c     Wed Jun 15 13:33:58 2011 +0100
+++ b/xen/arch/x86/hvm/io.c     Wed Jun 15 16:05:14 2011 +0100
@@ -239,7 +239,9 @@
         curr->arch.hvm_vcpu.io_state = HVMIO_handle_pio_awaiting_completion;
-        BUG();
+        gdprintk(XENLOG_ERR, "Weird HVM ioemulation status %d.\n", rc);
+        domain_crash(curr->domain);
+        break;
     return 1;

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86/hvm: Crash domain rather than guest on unexpected PIO IO state, Xen patchbot-unstable <=