Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5240c02 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "arm: dma-mapping: fix memory leak about dma iommu mapping"

parents fdd244e3 dd2bb392
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2696,7 +2696,6 @@ static bool arm_setup_iommu_dma_ops(struct device *dev, u64 dma_base, u64 size,
		return false;
	}

	kref_get(&mapping->kref);
	to_dma_iommu_mapping(dev) = mapping;

	return true;
@@ -2711,12 +2710,13 @@ static void arm_teardown_iommu_dma_ops(struct device *dev)
	if (!mapping)
		return;

	iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_S1_BYPASS,
			&s1_bypass);

	kref_put(&mapping->kref, arm_iommu_dma_release_mapping);
	to_dma_iommu_mapping(dev) = NULL;

	/* Let arch_setup_dma_ops() start again from scratch upon re-probe */
	iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_S1_BYPASS,
			&s1_bypass);
	if (!s1_bypass)
		set_dma_ops(dev, NULL);