iommu/mediatek: Fix M4Uv2 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
f2f101f6bc
commit
3a8d40b6ce
@ -410,6 +410,8 @@ static struct iommu_group *mtk_iommu_device_group(struct device *dev)
|
||||
data->m4u_group = iommu_group_alloc();
|
||||
if (IS_ERR(data->m4u_group))
|
||||
dev_err(dev, "Failed to allocate M4U IOMMU group\n");
|
||||
} else {
|
||||
iommu_group_ref_get(data->m4u_group);
|
||||
}
|
||||
return data->m4u_group;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user