diff options
author | Fengzhe Zhang <fengzhe.zhang@intel.com> | 2011-01-27 11:31:46 +0000 |
---|---|---|
committer | Fengzhe Zhang <fengzhe.zhang@intel.com> | 2011-01-27 11:31:46 +0000 |
commit | 92585dd6a9557b7d4842260cdb2d2a4da0d5f854 (patch) | |
tree | a6e0131115d52ac45a3d6a065572886371137b98 | |
parent | b920b2c76176ef8850806fb578a4619f1a83e51f (diff) | |
download | xen-92585dd6a9557b7d4842260cdb2d2a4da0d5f854.tar.gz xen-92585dd6a9557b7d4842260cdb2d2a4da0d5f854.tar.bz2 xen-92585dd6a9557b7d4842260cdb2d2a4da0d5f854.zip |
vtd: Fix for irq bind failure after PCI attaching 32 times
Originally when detaching a PCI device, pirq_to_emuirq and pirq_to_irq
are freed via hypercall do_physdev_op. Now in function
pt_irq_destroy_bind_vtd, duplicated logic is added to free
pirq_to_emuirq, but not pirq_to_irq. This causes do_physdev_op fail to
free both emuirq and irq. After attaching a PCI device for 32 times,
irq resources run out. This patch removes the redundant logic.
Signed-off-by: Fengzhe Zhang <fengzhe.zhang@intel.com>
-rw-r--r-- | xen/drivers/passthrough/io.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c index 6e85b6b654..86ae0af14f 100644 --- a/xen/drivers/passthrough/io.c +++ b/xen/drivers/passthrough/io.c @@ -375,7 +375,6 @@ int pt_irq_destroy_bind_vtd( hvm_irq_dpci->mirq[machine_gsi].dom = NULL; hvm_irq_dpci->mirq[machine_gsi].flags = 0; clear_bit(machine_gsi, hvm_irq_dpci->mapping); - unmap_domain_pirq_emuirq(d, machine_gsi); } } spin_unlock(&d->event_lock); |