Hi, >-----Original Message----- >From: Robin Murphy [mailto:[email protected]] >Sent: Wednesday, November 09, 2016 6:17 PM >To: [email protected] >Cc: [email protected]; [email protected]; >[email protected]; [email protected] >Subject: [PATCH 1/5] iommu: Allow taking a reference on a group directly > >iommu_group_get_for_dev() expects that the IOMMU driver's device_group >callback return a group with a reference held for the given device. >Whilst allocating a new group is fine, and pci_device_group() correctly >handles reusing an existing group, there is no general means for IOMMU >drivers doing their own group lookup to take additional references on an >existing group pointer without having to also store device pointers or >resort to elaborate trickery. > >Add an IOMMU-driver-specific function to fill the hole. > >Signed-off-by: Robin Murphy <[email protected]> >--- > drivers/iommu/iommu.c | 14 ++++++++++++++ > include/linux/iommu.h | 1 + > 2 files changed, 15 insertions(+) > >diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c >index 9a2f1960873b..b0b052bc6bb5 100644 >--- a/drivers/iommu/iommu.c >+++ b/drivers/iommu/iommu.c >@@ -552,6 +552,20 @@ struct iommu_group *iommu_group_get(struct device *dev) > EXPORT_SYMBOL_GPL(iommu_group_get); > > /** >+ * __iommu_group_get - Increment reference on a group >+ * @group: the group to use, must not be NULL >+ * >+ * This function may be called by internal iommu driver group management >+ * when the context of a struct device pointer is not available. It is >+ * not for general use. Returns the given group for convenience. >+ */ >+struct iommu_group *__iommu_group_get(struct iommu_group *group) >+{ >+ kobject_get(group->devices_kobj); >+ return group; >+} >+ >+/**
Acked-by: [email protected] Regards, Sricharan _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
