iommu: constify of_phandle_args in xlate
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Fri, 16 Feb 2024 14:40:25 +0000 (15:40 +0100)
committerJoerg Roedel <jroedel@suse.de>
Fri, 1 Mar 2024 12:46:57 +0000 (13:46 +0100)
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.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240216144027.185959-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Joerg Roedel <jroedel@suse.de>
16 files changed:
drivers/iommu/apple-dart.c
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
drivers/iommu/arm/arm-smmu/arm-smmu.c
drivers/iommu/arm/arm-smmu/qcom_iommu.c
drivers/iommu/exynos-iommu.c
drivers/iommu/iommu.c
drivers/iommu/ipmmu-vmsa.c
drivers/iommu/msm_iommu.c
drivers/iommu/mtk_iommu.c
drivers/iommu/mtk_iommu_v1.c
drivers/iommu/rockchip-iommu.c
drivers/iommu/sprd-iommu.c
drivers/iommu/sun50i-iommu.c
drivers/iommu/tegra-smmu.c
drivers/iommu/virtio-iommu.c
include/linux/iommu.h

index ef3ee95..eb1e62c 100644 (file)
@@ -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);
index 0258036..0234ddb 100644 (file)
@@ -2704,7 +2704,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);
 }
index 68b6bc5..8e5e4ab 100644 (file)
@@ -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;
 
index 17a1c16..e079bb7 100644 (file)
@@ -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;
index 2c6e909..d98c916 100644 (file)
@@ -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);
index fa329bc..b0a41f5 100644 (file)
@@ -2825,7 +2825,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;
index ace1fc4..cd72193 100644 (file)
@@ -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;
index f86af98..989e086 100644 (file)
@@ -598,7 +598,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;
@@ -626,7 +626,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;
index 7abe9e8..955de8f 100644 (file)
@@ -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;
 
index 25b4122..ae16d82 100644 (file)
@@ -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;
index 2685861..da79d9f 100644 (file)
@@ -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;
index 537359f..ba53571 100644 (file)
@@ -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;
 
index 41484a5..decd52c 100644 (file)
@@ -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];
index 3108717..14e525b 100644 (file)
@@ -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);
index 34db37f..04048f6 100644 (file)
@@ -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);
 }
index 7cc56cf..98a9586 100644 (file)
@@ -567,7 +567,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 */
@@ -985,7 +985,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)