aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/vpic.c
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-08 11:19:55 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-06-08 11:19:55 +0100
commit3f0a8ce1d77c3989f04a5a511832f07aed0c8561 (patch)
tree718af812b2baa2fc6edd8758b76a302611e80a77 /xen/arch/x86/hvm/vpic.c
parent85ac4d9f2c1d55f70d7450a9e50467305aedbcc2 (diff)
downloadxen-3f0a8ce1d77c3989f04a5a511832f07aed0c8561.tar.gz
xen-3f0a8ce1d77c3989f04a5a511832f07aed0c8561.tar.bz2
xen-3f0a8ce1d77c3989f04a5a511832f07aed0c8561.zip
hvm: Respect irqbase set by protected mode in mode switching with VMXAssist.
RHEL4U4 PAE SMP guest currently crashes, and we found changeset 15214 introduced it. This patch fixes it. Signed-off-by: Xin Li <xin.b.li@intel.com> Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Diffstat (limited to 'xen/arch/x86/hvm/vpic.c')
-rw-r--r--xen/arch/x86/hvm/vpic.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c
index 5dfe1e4a6b..19ef5d0756 100644
--- a/xen/arch/x86/hvm/vpic.c
+++ b/xen/arch/x86/hvm/vpic.c
@@ -174,7 +174,8 @@ static int vpic_intack(struct hvm_hw_vpic *vpic)
return irq;
}
-static void vpic_ioport_write(struct hvm_hw_vpic *vpic, uint32_t addr, uint32_t val)
+static void vpic_ioport_write(
+ struct hvm_hw_vpic *vpic, uint32_t addr, uint32_t val)
{
int priority, cmd, irq;
uint8_t mask;
@@ -265,6 +266,11 @@ static void vpic_ioport_write(struct hvm_hw_vpic *vpic, uint32_t addr, uint32_t
vpic->imr = val;
break;
case 1:
+#if 1 /* Delete me when vmxassist is retired. */
+ /* Which mode is irqbase programmed in? */
+ current->arch.hvm_vmx.irqbase_mode =
+ current->arch.hvm_vmx.vmxassist_enabled;
+#endif
/* ICW2 */
vpic->irq_base = val & 0xf8;
vpic->init_state++;