mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
iommu/arm-smmu: Fix group refcounting
When arm_smmu_device_group() finds an existing group due to Stream ID aliasing, it should be taking an additional reference on that group. 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. Reported-by: Sricharan R <sricharan@codeaurora.org> Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
13f59a78c6
commit
e1b44cbe7b
@ -1466,7 +1466,7 @@ static struct iommu_group *arm_smmu_device_group(struct device *dev)
|
||||
}
|
||||
|
||||
if (group)
|
||||
return group;
|
||||
return iommu_group_ref_get(group);
|
||||
|
||||
if (dev_is_pci(dev))
|
||||
group = pci_device_group(dev);
|
||||
|
Loading…
Reference in New Issue
Block a user