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

Commit d935ad91 authored by Eric Auger's avatar Eric Auger Committed by Alex Williamson
Browse files

vfio: fix noiommu vfio_iommu_group_get reference count



In vfio_iommu_group_get() we want to increase the reference
count of the iommu group.

In noiommu case, the group does not exist and is allocated.
iommu_group_add_device() increases the group ref count. However we
then call iommu_group_put() which decrements it.

This leads to a "refcount_t: underflow WARN_ON".

Only decrement the ref count in case of iommu_group_add_device
failure.

Signed-off-by: default avatarEric Auger <eric.auger@redhat.com>
Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
parent f203f7f1
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -138,9 +138,10 @@ struct iommu_group *vfio_iommu_group_get(struct device *dev)
	iommu_group_set_name(group, "vfio-noiommu");
	iommu_group_set_iommudata(group, &noiommu, NULL);
	ret = iommu_group_add_device(group, dev);
	if (ret) {
		iommu_group_put(group);
	if (ret)
		return NULL;
	}

	/*
	 * Where to taint?  At this point we've added an IOMMU group for a