iommu/amd: No need to wait iommu completion if no dte irq entry change

This is a clean up. In get_irq_table() only if DTE entry is changed
iommu_completion_wait() need be called. Otherwise no need to do it.

Signed-off-by: Baoquan He <bhe@redhat.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
Baoquan He 2016-09-20 09:05:34 +08:00 committed by Joerg Roedel
parent c3db901c54
commit 09284b9c4a
1 changed files with 3 additions and 3 deletions

View File

@ -3634,7 +3634,7 @@ static struct irq_remap_table *get_irq_table(u16 devid, bool ioapic)
table = irq_lookup_table[devid]; table = irq_lookup_table[devid];
if (table) if (table)
goto out; goto out_unlock;
alias = amd_iommu_alias_table[devid]; alias = amd_iommu_alias_table[devid];
table = irq_lookup_table[alias]; table = irq_lookup_table[alias];
@ -3648,7 +3648,7 @@ static struct irq_remap_table *get_irq_table(u16 devid, bool ioapic)
/* Nothing there yet, allocate new irq remapping table */ /* Nothing there yet, allocate new irq remapping table */
table = kzalloc(sizeof(*table), GFP_ATOMIC); table = kzalloc(sizeof(*table), GFP_ATOMIC);
if (!table) if (!table)
goto out; goto out_unlock;
/* Initialize table spin-lock */ /* Initialize table spin-lock */
spin_lock_init(&table->lock); spin_lock_init(&table->lock);
@ -3661,7 +3661,7 @@ static struct irq_remap_table *get_irq_table(u16 devid, bool ioapic)
if (!table->table) { if (!table->table) {
kfree(table); kfree(table);
table = NULL; table = NULL;
goto out; goto out_unlock;
} }
if (!AMD_IOMMU_GUEST_IR_GA(amd_iommu_guest_ir)) if (!AMD_IOMMU_GUEST_IR_GA(amd_iommu_guest_ir))