rk iommu: fix system panic when iommu pagefault
authorhjc <hjc@rock-chips.com>
Fri, 15 May 2015 01:29:24 +0000 (09:29 +0800)
committerhjc <hjc@rock-chips.com>
Fri, 15 May 2015 01:29:30 +0000 (09:29 +0800)
Signed-off-by: Simon <xxm@rock-chips.com>
Signed-off-by: cmy <cmy@rock-chips.com>
drivers/iommu/rockchip-iovmm.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index bb68d16..dffeab3
@@ -146,9 +146,12 @@ 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(&region->node);
+               spin_unlock(&vmm->lock);
                goto err_map_map;
-
+       }
        dev_dbg(dev->archdata.iommu, "IOVMM: Allocated VM region @ %p/%#X bytes.\n",
        &region->start, region->size);