Commit-ID: 367d04c4ec02dad34d80452e32e3370db7fb6fee Gitweb: http://git.kernel.org/tip/367d04c4ec02dad34d80452e32e3370db7fb6fee Author: Jiri Slaby <jirislaby@xxxxxxxxx> AuthorDate: Thu, 28 May 2009 09:54:48 +0200 Committer: Joerg Roedel <joerg.roedel@xxxxxxx> CommitDate: Wed, 3 Jun 2009 10:34:55 +0200 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@xxxxxxxxx> Cc: Joerg Roedel <joerg.roedel@xxxxxxx> Signed-off-by: Joerg Roedel <joerg.roedel@xxxxxxx> --- 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 d689883..9f89bb6 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, *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); -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html