diff options
author | Robin Murphy <robin.murphy@arm.com> | 2021-04-01 14:56:25 +0100 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2021-04-16 17:19:04 +0200 |
commit | c0aec6680b6c82fe893a546e322e1130cd5cf21e (patch) | |
tree | db60787936d90a2a97cc174e4af6c2d7d2aec5b3 /include/linux/iommu.h | |
parent | 49d11527e560f7b62bd740d42e01d895e1d7a606 (diff) | |
download | linux-stable-c0aec6680b6c82fe893a546e322e1130cd5cf21e.tar.gz linux-stable-c0aec6680b6c82fe893a546e322e1130cd5cf21e.tar.bz2 linux-stable-c0aec6680b6c82fe893a546e322e1130cd5cf21e.zip |
iommu: Statically set module owner
It happens that the 3 drivers which first supported being modular are
also ones which play games with their pgsize_bitmap, so have non-const
iommu_ops where dynamically setting the owner manages to work out OK.
However, it's less than ideal to force that upon all drivers which want
to be modular - like the new sprd-iommu driver which now has a potential
bug in that regard - so let's just statically set the module owner and
let ops remain const wherever possible.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/31423b99ff609c3d4b291c701a7a7a810d9ce8dc.1617285386.git.robin.murphy@arm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'include/linux/iommu.h')
-rw-r--r-- | include/linux/iommu.h | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 9223a8266b08..ce904cf4e774 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -361,19 +361,12 @@ int iommu_device_link(struct iommu_device *iommu, struct device *link); void iommu_device_unlink(struct iommu_device *iommu, struct device *link); int iommu_deferred_attach(struct device *dev, struct iommu_domain *domain); -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) { |