]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soc/tegra: fuse: Explicitly cast to/from __iomem
authorThierry Reding <treding@nvidia.com>
Thu, 24 Feb 2022 12:27:28 +0000 (13:27 +0100)
committerThierry Reding <treding@nvidia.com>
Thu, 24 Feb 2022 16:09:13 +0000 (17:09 +0100)
sparse is picky about casts between different address spaces. A cast to
plain void * needs to be accompanied by a __force modifier and casting
back to void __iomem * needs to be explicit to avoid warnings.

Reported-by: kernel test robot <lkp@intel.com>
Fixes: 88724b78a84c ("soc/tegra: fuse: Use resource-managed helpers")
Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/soc/tegra/fuse/fuse-tegra.c

index 10d2ae99babdc5361f4ca6b61ebe9a1762e121e2..aa94fda282f4b17cf3530ed8439f87ca1717f9ad 100644 (file)
@@ -202,8 +202,8 @@ static const struct nvmem_cell_info tegra_fuse_cells[] = {
 
 static void tegra_fuse_restore(void *base)
 {
+       fuse->base = (void __iomem *)base;
        fuse->clk = NULL;
-       fuse->base = base;
 }
 
 static int tegra_fuse_probe(struct platform_device *pdev)
@@ -213,7 +213,7 @@ static int tegra_fuse_probe(struct platform_device *pdev)
        struct resource *res;
        int err;
 
-       err = devm_add_action(&pdev->dev, tegra_fuse_restore, base);
+       err = devm_add_action(&pdev->dev, tegra_fuse_restore, (void __force *)base);
        if (err)
                return err;