mirror of https://gitee.com/openkylin/linux.git
iommu/mediatek: Fix M4Uv1 group refcounting
For each subsequent device assigned to the m4u_group after its initial allocation, we need to take an additional reference. Otherwise, the caller of iommu_group_get_for_dev() will inadvertently remove the reference taken by iommu_group_add_device(), and the group will be freed prematurely if any device is removed. Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
3a8d40b6ce
commit
5d1d43b0f6
|
@ -502,6 +502,8 @@ static struct iommu_group *mtk_iommu_device_group(struct device *dev)
|
||||||
data->m4u_group = iommu_group_alloc();
|
data->m4u_group = iommu_group_alloc();
|
||||||
if (IS_ERR(data->m4u_group))
|
if (IS_ERR(data->m4u_group))
|
||||||
dev_err(dev, "Failed to allocate M4U IOMMU group\n");
|
dev_err(dev, "Failed to allocate M4U IOMMU group\n");
|
||||||
|
} else {
|
||||||
|
iommu_group_ref_get(data->m4u_group);
|
||||||
}
|
}
|
||||||
return data->m4u_group;
|
return data->m4u_group;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue