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 | ||