diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/x86/kernel/amd_iommu.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index d6898833c363..9f89bb645b31 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c | |||
| @@ -1541,8 +1541,10 @@ static void *alloc_coherent(struct device *dev, size_t size, | |||
| 1541 | *dma_addr = __map_single(dev, iommu, domain->priv, paddr, | 1541 | *dma_addr = __map_single(dev, iommu, domain->priv, paddr, |
| 1542 | size, DMA_BIDIRECTIONAL, true, dma_mask); | 1542 | size, DMA_BIDIRECTIONAL, true, dma_mask); |
| 1543 | 1543 | ||
| 1544 | if (*dma_addr == bad_dma_address) | 1544 | if (*dma_addr == bad_dma_address) { |
| 1545 | spin_unlock_irqrestore(&domain->lock, flags); | ||
| 1545 | goto out_free; | 1546 | goto out_free; |
| 1547 | } | ||
| 1546 | 1548 | ||
| 1547 | iommu_completion_wait(iommu); | 1549 | iommu_completion_wait(iommu); |
| 1548 | 1550 | ||
