- if (mmu->version == ETNAVIV_IOMMU_V2) {
- mutex_lock(&mmu->lock);
- etnaviv_domain_unmap(mmu->domain, iova, size);
- drm_mm_remove_node(vram_node);
- mutex_unlock(&mmu->lock);
- }
+ if (!mapping->use)
+ return;
+
+ mapping->use = 0;
+
+ if (mmu->version == ETNAVIV_IOMMU_V1)
+ return;
+
+ mutex_lock(&mmu->lock);
+ etnaviv_domain_unmap(mmu->domain, node->start, node->size);
+ drm_mm_remove_node(node);
+ mutex_unlock(&mmu->lock);