mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86: teardown_msi_irq is not needed.
teardown_msi_irq logic is covered in destroy_irq, so remove it to avoid freeing msi resource twice. Signed-off-by: Xiantao Zhang<xiantao.zhang@intel.com>
This commit is contained in:
1 parent
e0c21e9a94
commit
bb4b42c9cf
2 files changed
-41
No files matched your search
@@ -1383,9 +1383,6 @@ int unmap_domain_pirq(struct domain *d, int pirq)
|
||||
|
||||
BUG_ON(irq != domain_pirq_to_irq(d, pirq));
|
||||
|
||||
if ( msi_desc )
|
||||
teardown_msi_irq(irq);
|
||||
|
||||
if ( !forced_unbind )
|
||||
{
|
||||
d->arch.pirq_irq[pirq] = 0;
|
||||
|
||||
@@ -215,22 +215,6 @@ static int set_irq_msi(struct msi_desc *entry)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int unset_irq_msi(int irq)
|
||||
{
|
||||
ASSERT(spin_is_locked(&irq_desc[irq].lock));
|
||||
|
||||
if ( irq >= nr_irqs )
|
||||
{
|
||||
dprintk(XENLOG_ERR, "Trying to uninstall msi data for irq %d\n",
|
||||
irq);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
irq_desc[irq].msi_desc = NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void write_msi_msg(struct msi_desc *entry, struct msi_msg *msg)
|
||||
{
|
||||
if ( iommu_enabled )
|
||||
@@ -457,11 +441,6 @@ int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void teardown_msi_irq(int irq)
|
||||
{
|
||||
unset_irq_msi(irq);
|
||||
}
|
||||
|
||||
int msi_free_irq(struct msi_desc *entry)
|
||||
{
|
||||
if ( entry->msi_attrib.type == PCI_CAP_ID_MSIX )
|
||||
@@ -780,27 +759,10 @@ void pci_disable_msi(struct msi_desc *msi_desc)
|
||||
static void msi_free_irqs(struct pci_dev* dev)
|
||||
{
|
||||
struct msi_desc *entry, *tmp;
|
||||
struct irq_desc *desc;
|
||||
unsigned long flags, irq;
|
||||
|
||||
list_for_each_entry_safe( entry, tmp, &dev->msi_list, list )
|
||||
{
|
||||
irq = entry->irq;
|
||||
desc = &irq_desc[irq];
|
||||
pci_disable_msi(entry);
|
||||
|
||||
spin_lock_irqsave(&desc->lock, flags);
|
||||
|
||||
teardown_msi_irq(irq);
|
||||
|
||||
if ( desc->handler == &pci_msi_type )
|
||||
{
|
||||
/* MSI is not shared, so should be released already */
|
||||
BUG_ON(desc->status & IRQ_GUEST);
|
||||
desc->handler = &no_irq_type;
|
||||
}
|
||||
|
||||
spin_unlock_irqrestore(&desc->lock, flags);
|
||||
msi_free_irq(entry);
|
||||
}
|
||||
}
|
||||
|
||||