iommu: constify pointer to bus_type
Subsystems (16)
PATCH 1/4 iommu: constify pointer to bus_type
Make pointer to bus_type a pointer to const for code safety.
--- drivers/iommu/iommu-priv.h | 5 +++-- drivers/iommu/iommu.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-)
drivers/iommu/iommu-priv.h +3 -2
@@ -21,10 +21,11 @@ int iommu_group_replace_domain(struct iommu_group *group, struct iommu_domain *new_domain);int iommu_device_register_bus (struct iommu_device *iommu, -const struct iommu_ops *ops,struct bus_type *bus, +const struct iommu_ops *ops, +const struct bus_type *bus,struct notifier_block *nb);void iommu_device_unregister_bus (struct iommu_device *iommu, -struct bus_type *bus, +const struct bus_type *bus,struct notifier_block *nb);#endif /* __LINUX_IOMMU_PRIV_H */
drivers/iommu/iommu.c +3 -2
@@ -291,7 +291,7 @@ EXPORT_SYMBOL_GPL(iommu_device_unregister);#if IS_ENABLED (CONFIG_IOMMUFD_TEST )void iommu_device_unregister_bus (struct iommu_device *iommu, -struct bus_type *bus, +const struct bus_type *bus,struct notifier_block *nb) {bus_unregister_notifier (bus, nb);
@@ -305,7 +305,8 @@ EXPORT_SYMBOL_GPL(iommu_device_unregister_bus);* some memory to hold a notifier_block. */ int iommu_device_register_bus (struct iommu_device *iommu, -const struct iommu_ops *ops,struct bus_type *bus, +const struct iommu_ops *ops, +const struct bus_type *bus,struct notifier_block *nb) {int err;
Signature · 1 line
2.34.1
PATCH 2/4 iommu: constify of_phandle_args in xlate
The xlate callbacks are supposed to translate of_phandle_args to proper provider without modifying the of_phandle_args. Make the argument pointer to const for code safety and readability.
--- drivers/iommu/apple-dart.c | 3 ++- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 3 ++- drivers/iommu/arm/arm-smmu/arm-smmu.c | 3 ++- drivers/iommu/arm/arm-smmu/qcom_iommu.c | 3 ++- drivers/iommu/exynos-iommu.c | 2 +- drivers/iommu/iommu.c | 2 +- drivers/iommu/ipmmu-vmsa.c | 4 ++-- drivers/iommu/msm_iommu.c | 4 ++-- drivers/iommu/mtk_iommu.c | 3 ++- drivers/iommu/mtk_iommu_v1.c | 3 ++- drivers/iommu/rockchip-iommu.c | 2 +- drivers/iommu/sprd-iommu.c | 3 ++- drivers/iommu/sun50i-iommu.c | 2 +- drivers/iommu/tegra-smmu.c | 4 ++-- drivers/iommu/virtio-iommu.c | 3 ++- include/linux/iommu.h | 4 ++-- 16 files changed, 28 insertions(+), 20 deletions(-)
drivers/iommu/apple-dart.c +2 -1
@@ -779,7 +779,8 @@ static void apple_dart_domain_free(struct iommu_domain *domain)kfree (dart_domain); } -static int apple_dart_of_xlate (struct device *dev,struct of_phandle_args *args) +static int apple_dart_of_xlate (struct device *dev, +const struct of_phandle_args *args) {struct apple_dart_master_cfg *cfg =dev_iommu_priv_get (dev);struct platform_device *iommu_pdev =of_find_device_by_node (args->np);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +2 -1
@@ -2739,7 +2739,8 @@ static int arm_smmu_enable_nesting(struct iommu_domain *domain)return ret; } -static int arm_smmu_of_xlate (struct device *dev,struct of_phandle_args *args) +static int arm_smmu_of_xlate (struct device *dev, +const struct of_phandle_args *args) {return iommu_fwspec_add_ids (dev, args->args,1 ); }
drivers/iommu/arm/arm-smmu/arm-smmu.c +2 -1
@@ -1551,7 +1551,8 @@ static int arm_smmu_set_pgtable_quirks(struct iommu_domain *domain,return ret; } -static int arm_smmu_of_xlate (struct device *dev,struct of_phandle_args *args) +static int arm_smmu_of_xlate (struct device *dev, +const struct of_phandle_args *args) {u32 mask, fwid =0 ;
drivers/iommu/arm/arm-smmu/qcom_iommu.c +2 -1
@@ -546,7 +546,8 @@ static struct iommu_device *qcom_iommu_probe_device(struct device *dev)return &qcom_iommu->iommu; } -static int qcom_iommu_of_xlate (struct device *dev,struct of_phandle_args *args) +static int qcom_iommu_of_xlate (struct device *dev, +const struct of_phandle_args *args) {struct qcom_iommu_dev *qcom_iommu;struct platform_device *iommu_pdev;
drivers/iommu/exynos-iommu.c +1 -1
@@ -1431,7 +1431,7 @@ static void exynos_iommu_release_device(struct device *dev) }static int exynos_iommu_of_xlate (struct device *dev, -struct of_phandle_args *spec) +const struct of_phandle_args *spec) {struct platform_device *sysmmu =of_find_device_by_node (spec->np);struct exynos_iommu_owner *owner =dev_iommu_priv_get (dev);
drivers/iommu/iommu.c +1 -1
@@ -3038,7 +3038,7 @@ void iommu_fwspec_free(struct device *dev) }EXPORT_SYMBOL_GPL (iommu_fwspec_free); -int iommu_fwspec_add_ids (struct device *dev,u32 *ids,int num_ids) +int iommu_fwspec_add_ids (struct device *dev,const u32 *ids,int num_ids) {struct iommu_fwspec *fwspec =dev_iommu_fwspec_get (dev);int i, new_num;
drivers/iommu/ipmmu-vmsa.c +2 -2
@@ -709,7 +709,7 @@ static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain, }static int ipmmu_init_platform_device (struct device *dev, -struct of_phandle_args *args) +const struct of_phandle_args *args) {struct platform_device *ipmmu_pdev;
@@ -773,7 +773,7 @@ static bool ipmmu_device_is_allowed(struct device *dev) }static int ipmmu_of_xlate (struct device *dev, -struct of_phandle_args *spec) +const struct of_phandle_args *spec) {if (!ipmmu_device_is_allowed (dev))return -ENODEV ;
drivers/iommu/msm_iommu.c +2 -2
@@ -588,7 +588,7 @@ static void print_ctx_regs(void __iomem *base, int ctx)static int insert_iommu_master (struct device *dev,struct msm_iommu_dev **iommu, -struct of_phandle_args *spec) +const struct of_phandle_args *spec) {struct msm_iommu_ctx_dev *master =dev_iommu_priv_get (dev);int sid;
@@ -616,7 +616,7 @@ static int insert_iommu_master(struct device *dev, }static int qcom_iommu_of_xlate (struct device *dev, -struct of_phandle_args *spec) +const struct of_phandle_args *spec) {struct msm_iommu_dev *iommu =NULL , *iter;unsigned long flags;
drivers/iommu/mtk_iommu.c +2 -1
@@ -957,7 +957,8 @@ static struct iommu_group *mtk_iommu_device_group(struct device *dev)return group; } -static int mtk_iommu_of_xlate (struct device *dev,struct of_phandle_args *args) +static int mtk_iommu_of_xlate (struct device *dev, +const struct of_phandle_args *args) {struct platform_device *m4updev;
drivers/iommu/mtk_iommu_v1.c +2 -1
@@ -398,7 +398,8 @@ static const struct iommu_ops mtk_iommu_v1_ops;* MTK generation one iommu HW only support one iommu domain, and all the client * sharing the same iova address space. */ -static int mtk_iommu_v1_create_mapping (struct device *dev,struct of_phandle_args *args) +static int mtk_iommu_v1_create_mapping (struct device *dev, +const struct of_phandle_args *args) {struct iommu_fwspec *fwspec =dev_iommu_fwspec_get (dev);struct mtk_iommu_v1_data *data;
drivers/iommu/rockchip-iommu.c +1 -1
@@ -1140,7 +1140,7 @@ static void rk_iommu_release_device(struct device *dev) }static int rk_iommu_of_xlate (struct device *dev, -struct of_phandle_args *args) +const struct of_phandle_args *args) {struct platform_device *iommu_dev;struct rk_iommudata *data;
drivers/iommu/sprd-iommu.c +2 -1
@@ -390,7 +390,8 @@ static struct iommu_device *sprd_iommu_probe_device(struct device *dev)return &sdev->iommu; } -static int sprd_iommu_of_xlate (struct device *dev,struct of_phandle_args *args) +static int sprd_iommu_of_xlate (struct device *dev, +const struct of_phandle_args *args) {struct platform_device *pdev;
drivers/iommu/sun50i-iommu.c +1 -1
@@ -819,7 +819,7 @@ static struct iommu_device *sun50i_iommu_probe_device(struct device *dev) }static int sun50i_iommu_of_xlate (struct device *dev, -struct of_phandle_args *args) +const struct of_phandle_args *args) {struct platform_device *iommu_pdev =of_find_device_by_node (args->np);unsigned id = args->args[0 ];
drivers/iommu/tegra-smmu.c +2 -2
@@ -830,7 +830,7 @@ static struct tegra_smmu *tegra_smmu_find(struct device_node *np) }static int tegra_smmu_configure (struct tegra_smmu *smmu,struct device *dev, -struct of_phandle_args *args) +const struct of_phandle_args *args) {const struct iommu_ops *ops = smmu->iommu.ops;int err;
@@ -959,7 +959,7 @@ static struct iommu_group *tegra_smmu_device_group(struct device *dev) }static int tegra_smmu_of_xlate (struct device *dev, -struct of_phandle_args *args) +const struct of_phandle_args *args) {struct platform_device *iommu_pdev =of_find_device_by_node (args->np);struct tegra_mc *mc =platform_get_drvdata (iommu_pdev);
drivers/iommu/virtio-iommu.c +2 -1
@@ -1051,7 +1051,8 @@ static struct iommu_group *viommu_device_group(struct device *dev)return generic_device_group (dev); } -static int viommu_of_xlate (struct device *dev,struct of_phandle_args *args) +static int viommu_of_xlate (struct device *dev, +const struct of_phandle_args *args) {return iommu_fwspec_add_ids (dev, args->args,1 ); }
include/linux/iommu.h +2 -2
@@ -468,7 +468,7 @@ struct iommu_ops {/* Request/Free a list of reserved regions for a device */ void (*get_resv_regions)(struct device *dev,struct list_head *list); -int (*of_xlate)(struct device *dev,struct of_phandle_args *args); +int (*of_xlate)(struct device *dev,const struct of_phandle_args *args);bool (*is_attach_deferred)(struct device *dev);/* Per device IOMMU features */
@@ -902,7 +902,7 @@ struct iommu_mm_data {int iommu_fwspec_init (struct device *dev,struct fwnode_handle *iommu_fwnode,const struct iommu_ops *ops);void iommu_fwspec_free (struct device *dev); -int iommu_fwspec_add_ids (struct device *dev,u32 *ids,int num_ids); +int iommu_fwspec_add_ids (struct device *dev,const u32 *ids,int num_ids);const struct iommu_ops *iommu_ops_from_fwnode (struct fwnode_handle *fwnode);static inline struct iommu_fwspec *dev_iommu_fwspec_get (struct device *dev)
Signature · 1 line
2.34.1
PATCH 3/4 iommu: constify fwnode in iommu_ops_from_fwnode()
In reply to Krzysztof KozlowskiMake pointer to fwnode_handle a pointer to const for code safety.
--- drivers/iommu/iommu.c | 2 +- include/linux/iommu.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
drivers/iommu/iommu.c +1 -1
@@ -2987,7 +2987,7 @@ bool iommu_default_passthrough(void) }EXPORT_SYMBOL_GPL (iommu_default_passthrough); -const struct iommu_ops *iommu_ops_from_fwnode (struct fwnode_handle *fwnode) +const struct iommu_ops *iommu_ops_from_fwnode (const struct fwnode_handle *fwnode) {const struct iommu_ops *ops =NULL ;struct iommu_device *iommu;
include/linux/iommu.h +2 -2
@@ -903,7 +903,7 @@ int iommu_fwspec_init(struct device *dev, struct fwnode_handle *iommu_fwnode, const struct iommu_ops *ops);void iommu_fwspec_free (struct device *dev);int iommu_fwspec_add_ids (struct device *dev,const u32 *ids,int num_ids); -const struct iommu_ops *iommu_ops_from_fwnode (struct fwnode_handle *fwnode); +const struct iommu_ops *iommu_ops_from_fwnode (const struct fwnode_handle *fwnode);static inline struct iommu_fwspec *dev_iommu_fwspec_get (struct device *dev) {
@@ -1253,7 +1253,7 @@ static inline int iommu_fwspec_add_ids(struct device *dev, u32 *ids, }static inline -const struct iommu_ops *iommu_ops_from_fwnode (struct fwnode_handle *fwnode) +const struct iommu_ops *iommu_ops_from_fwnode (const struct fwnode_handle *fwnode) {return NULL ; }
Signature · 1 line
2.34.1
PATCH 4/4 iommu: re-use local fwnode variable in iommu_ops_from_fwnode()
In reply to Krzysztof Kozlowskiiommu_ops_from_fwnode() stores &iommu_spec->np->fwnode in local variable, so use it to simplify the code (iommu_spec is not changed between these dereferences).
--- drivers/iommu/of_iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/iommu/of_iommu.c +1 -1
@@ -29,7 +29,7 @@ static int of_iommu_xlate(struct device *dev, !of_device_is_available(iommu_spec->np))return -ENODEV ; - ret =iommu_fwspec_init (dev, &iommu_spec->np->fwnode, ops); + ret =iommu_fwspec_init (dev, fwnode, ops);if (ret)return ret;/*
Signature · 1 line
2.34.1
Quoted 7 lines · Krzysztof Kozlowski
Make pointer to
bus_typea pointer to const for code safety.Signed-off-by Krzysztof Kozlowski<[email protected]>--- drivers/iommu/iommu-priv.h | 5 +++-- drivers/iommu/iommu.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-)
Best regards,
baolu
On Fri, Feb 16, 2024 at 03:40:24PM +0100, Krzysztof Kozlowski wrote:
Applied all, thanks.