FROMGIT: drivers/iommu: Initialise module 'owner' field in iommu_device_set_ops()
Requiring each IOMMU driver to initialise the 'owner' field of their 'struct iommu_ops' is error-prone and easily forgotten. Follow the example set by PCI and USB by assigning THIS_MODULE automatically when registering the ops structure with IOMMU core. Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Will Deacon <will@kernel.org> (cherry picked from commit fc10cca69ee8 git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git arm/smmu) Change-Id: I98dd7b9155dab7dc6890f1bc61f49c124b7eca36 Signed-off-by: Will Deacon <willdeacon@google.com> (cherry picked from commit 237cd1e40dae35e2dfc1207ecc12d5338e4f4fbd)
This commit is contained in:
parent
7af24377ee
commit
53fa56f06e
@ -2733,7 +2733,6 @@ static struct iommu_ops arm_smmu_ops = {
|
||||
.get_resv_regions = arm_smmu_get_resv_regions,
|
||||
.put_resv_regions = arm_smmu_put_resv_regions,
|
||||
.pgsize_bitmap = -1UL, /* Restricted during device attach */
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
/* Probing and initialisation functions */
|
||||
|
@ -1612,7 +1612,6 @@ static struct iommu_ops arm_smmu_ops = {
|
||||
.get_resv_regions = arm_smmu_get_resv_regions,
|
||||
.put_resv_regions = arm_smmu_put_resv_regions,
|
||||
.pgsize_bitmap = -1UL, /* Restricted during device attach */
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static void arm_smmu_device_reset(struct arm_smmu_device *smmu)
|
||||
|
@ -378,12 +378,19 @@ void iommu_device_sysfs_remove(struct iommu_device *iommu);
|
||||
int iommu_device_link(struct iommu_device *iommu, struct device *link);
|
||||
void iommu_device_unlink(struct iommu_device *iommu, struct device *link);
|
||||
|
||||
static inline void iommu_device_set_ops(struct iommu_device *iommu,
|
||||
static inline void __iommu_device_set_ops(struct iommu_device *iommu,
|
||||
const struct iommu_ops *ops)
|
||||
{
|
||||
iommu->ops = ops;
|
||||
}
|
||||
|
||||
#define iommu_device_set_ops(iommu, ops) \
|
||||
do { \
|
||||
struct iommu_ops *__ops = (struct iommu_ops *)(ops); \
|
||||
__ops->owner = THIS_MODULE; \
|
||||
__iommu_device_set_ops(iommu, __ops); \
|
||||
} while (0)
|
||||
|
||||
static inline void iommu_device_set_fwnode(struct iommu_device *iommu,
|
||||
struct fwnode_handle *fwnode)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user