diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-09-18 16:09:19 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-09-18 16:09:19 +0100 |
commit | 7b3cb5e541601bc0d41bc92b53451bbed11a35a8 (patch) | |
tree | bda87ca8510da194028f1b669f0fae1b28a544c5 /xen/arch/x86/hvm/vpic.c | |
parent | 2af556c077ab270134bb6ab54456165ff6eab015 (diff) | |
download | xen-7b3cb5e541601bc0d41bc92b53451bbed11a35a8.tar.gz xen-7b3cb5e541601bc0d41bc92b53451bbed11a35a8.tar.bz2 xen-7b3cb5e541601bc0d41bc92b53451bbed11a35a8.zip |
IRQ injection changes for HVM PCI passthru.
Signed-off-by: Allen Kay <allen.m.kay@intel.com>
Signed-off-by: Guy Zana <guy@neocleus.com>
Diffstat (limited to 'xen/arch/x86/hvm/vpic.c')
-rw-r--r-- | xen/arch/x86/hvm/vpic.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/xen/arch/x86/hvm/vpic.c b/xen/arch/x86/hvm/vpic.c index 46ab18fc46..1ac08320fa 100644 --- a/xen/arch/x86/hvm/vpic.c +++ b/xen/arch/x86/hvm/vpic.c @@ -182,8 +182,7 @@ static void vpic_ioport_write( vpic_lock(vpic); - addr &= 1; - if ( addr == 0 ) + if ( (addr & 1) == 0 ) { if ( val & 0x10 ) { @@ -250,6 +249,11 @@ static void vpic_ioport_write( vpic->isr &= ~(1 << irq); if ( cmd == 7 ) vpic->priority_add = (irq + 1) & 7; + if ( vtd_enabled ) + { + irq |= ((addr & 0xa0) == 0xa0) ? 8 : 0; + hvm_dpci_eoi(hvm_isa_irq_to_gsi(irq), NULL); + } break; case 6: /* Set Priority */ vpic->priority_add = (val + 1) & 7; |