Commit a8300c46 authored by Thomas Zimmermann's avatar Thomas Zimmermann
Browse files

drm/ofdrm: Cast error pointers to void __iomem *



Cast error pointers when returning them as void __iomem *. Fixes
a number of Sparse warnings, such as the ones shown below.

../drivers/gpu/drm/tiny/ofdrm.c:439:31: warning: incorrect type in return expression (different address spaces)
../drivers/gpu/drm/tiny/ofdrm.c:439:31:    expected void [noderef] __iomem *
../drivers/gpu/drm/tiny/ofdrm.c:439:31:    got void *
../drivers/gpu/drm/tiny/ofdrm.c:442:31: warning: incorrect type in return expression (different address spaces)
../drivers/gpu/drm/tiny/ofdrm.c:442:31:    expected void [noderef] __iomem *
../drivers/gpu/drm/tiny/ofdrm.c:442:31:    got void *

See [1] for the bug report.

v3:
	* use IOMEM_ERR_PTR() (Javier)

Reported-by: default avatarkernel test robot <lkp@intel.com>
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Link: https://lore.kernel.org/dri-devel/202210200016.yiQzPIy0-lkp@intel.com/ # [1]
Link: https://patchwork.freedesktop.org/patch/msgid/20221103101627.32502-3-tzimmermann@suse.de
parent e67e865b
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -438,21 +438,21 @@ static void __iomem *get_cmap_address_of(struct ofdrm_device *odev, struct devic
	if (!addr_p)
		addr_p = of_get_address(of_node, bar_no, &max_size, &flags);
	if (!addr_p)
		return ERR_PTR(-ENODEV);
		return IOMEM_ERR_PTR(-ENODEV);

	if ((flags & (IORESOURCE_IO | IORESOURCE_MEM)) == 0)
		return ERR_PTR(-ENODEV);
		return IOMEM_ERR_PTR(-ENODEV);

	if ((offset + size) >= max_size)
		return ERR_PTR(-ENODEV);
		return IOMEM_ERR_PTR(-ENODEV);

	address = of_translate_address(of_node, addr_p);
	if (address == OF_BAD_ADDR)
		return ERR_PTR(-ENODEV);
		return IOMEM_ERR_PTR(-ENODEV);

	mem = devm_ioremap(dev->dev, address + offset, size);
	if (!mem)
		return ERR_PTR(-ENOMEM);
		return IOMEM_ERR_PTR(-ENOMEM);

	return mem;
}
@@ -470,7 +470,7 @@ static void __iomem *ofdrm_mach64_cmap_ioremap(struct ofdrm_device *odev,

	cmap_base = devm_ioremap(dev->dev, address, 0x1000);
	if (!cmap_base)
		return ERR_PTR(-ENOMEM);
		return IOMEM_ERR_PTR(-ENOMEM);

	return cmap_base;
}
@@ -629,11 +629,11 @@ static void __iomem *ofdrm_qemu_cmap_ioremap(struct ofdrm_device *odev,

	address = of_translate_address(of_node, io_of_addr);
	if (address == OF_BAD_ADDR)
		return ERR_PTR(-ENODEV);
		return IOMEM_ERR_PTR(-ENODEV);

	cmap_base = devm_ioremap(dev->dev, address + 0x3c8, 2);
	if (!cmap_base)
		return ERR_PTR(-ENOMEM);
		return IOMEM_ERR_PTR(-ENOMEM);

	return cmap_base;
}