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;