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>
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)
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;