amd_iommu: fix lock imbalance
In alloc_coherent there is an omitted unlock on the path where mapping fails. Add the unlock. [ Impact: fix lock imbalance in alloc_coherent ] Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
parent
c1eee67b2d
commit
367d04c4ec
1 changed files with 3 additions and 1 deletions
|
@ -1541,8 +1541,10 @@ static void *alloc_coherent(struct device *dev, size_t size,
|
|||
*dma_addr = __map_single(dev, iommu, domain->priv, paddr,
|
||||
size, DMA_BIDIRECTIONAL, true, dma_mask);
|
||||
|
||||
if (*dma_addr == bad_dma_address)
|
||||
if (*dma_addr == bad_dma_address) {
|
||||
spin_unlock_irqrestore(&domain->lock, flags);
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
iommu_completion_wait(iommu);
|
||||
|
||||
|
|
Loading…
Reference in a new issue