diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-06-08 11:19:55 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-06-08 11:19:55 +0100 |
commit | 3f0a8ce1d77c3989f04a5a511832f07aed0c8561 (patch) | |
tree | 718af812b2baa2fc6edd8758b76a302611e80a77 /xen/arch/x86/hvm/vpic.c | |
parent | 85ac4d9f2c1d55f70d7450a9e50467305aedbcc2 (diff) | |
download | xen-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.c | 8 |
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++; |