Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 4470

kernel-2.6.18-194.11.1.el5.src.rpm

From: Chris Lalancette <clalance@redhat.com>
Date: Wed, 8 Apr 2009 10:15:13 +0200
Subject: [xen] ia64: fix HVM guest kexec
Message-id: 49DC5D11.8020406@redhat.com
O-Subject: [RHEL5.4 PATCH]: ia64: Fix HVM guest kexec
Bugzilla: 418591
RH-Acked-by: Rik van Riel <riel@redhat.com>

All,
     Attached is a simple patch that helps fix ia64 kexec/kdump in an HVM guest.
 Instead of killing a guest when it writes a NULL_VECTOR in guest_write_eoi(),
just do nothing.
     With this patch in place, and the kexec-tools patch from BZ 473730, the
reporter was able to successfully kexec/kdump an ia64 HVM guest.  This is a
backport of xen-unstable c/s 16358.  This should resolve BZ 418591.  Please
review and ACK.

--
Chris Lalancette

diff --git a/arch/ia64/vmx/vlsapic.c b/arch/ia64/vmx/vlsapic.c
index 077f75a..eb813b2 100644
--- a/arch/ia64/vmx/vlsapic.c
+++ b/arch/ia64/vmx/vlsapic.c
@@ -518,8 +518,11 @@ void guest_write_eoi(VCPU *vcpu)
     int vec;
 
     vec = highest_inservice_irq(vcpu);
-    if ( vec == NULL_VECTOR ) 
-        panic_domain(vcpu_regs(vcpu), "Wrong vector to EOI\n");
+    if (vec == NULL_VECTOR) {
+        gdprintk(XENLOG_WARNING, "vcpu(%d): Wrong vector to EOI\n",
+                 vcpu->vcpu_id);
+        return;
+    }
     VLSAPIC_INSVC(vcpu,vec>>6) &= ~(1UL <<(vec&63));
     VCPU(vcpu, eoi)=0;    // overwrite the data
     vcpu->arch.irq_new_pending=1;