mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
rk3368: iommu: fix region free position when iovmm_activate failed
Signed-off-by: Simon <xxm@rock-chips.com>
This commit is contained in:
parent
66944054a5
commit
9b27f65bf6
|
|
@ -148,18 +148,18 @@ dma_addr_t rockchip_iovmm_map(struct device *dev,
|
|||
spin_unlock(&vmm->lock);
|
||||
|
||||
ret = rockchip_iommu_tlb_invalidate(dev);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
spin_lock(&vmm->lock);
|
||||
list_del(®ion->node);
|
||||
spin_unlock(&vmm->lock);
|
||||
goto err_map_map;
|
||||
|
||||
}
|
||||
dev_dbg(dev->archdata.iommu, "IOVMM: Allocated VM region @ %p/%#X bytes.\n",
|
||||
®ion->start, region->size);
|
||||
|
||||
return region->start;
|
||||
|
||||
err_map_map:
|
||||
spin_lock(&vmm->lock);
|
||||
list_del(®ion->node);
|
||||
spin_unlock(&vmm->lock);
|
||||
iommu_unmap(vmm->domain, start, mapped_size);
|
||||
gen_pool_free(vmm->vmm_pool, start, size);
|
||||
err_map_noiomem:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user