[PATCH phy-next v2] phy: apple: apple: Use local variable for ioremap return value
Sven Peter
sven at kernel.org
Sun Feb 15 04:07:39 PST 2026
On 15.02.26 09:02, Janne Grunau wrote:
> The indirection through the resources array is unnecessarily complicated
> and resuling in using IS_ERR() and PTR_ERR() on a valid address. A local
> variable for the devm_ioremap_resource() return value is both easier to
> read and matches expectations when reading code.
>
> Reported-by: Dan Carpenter <dan.carpenter at linaro.org>
> Closes: https://lore.kernel.org/asahi/aYXvX1bYOXtYCgfC@stanley.mountain/
> Suggested-by: Vladimir Oltean <olteanv at gmail.com>
> Fixes: 8e98ca1e74db ("phy: apple: Add Apple Type-C PHY")
> Signed-off-by: Janne Grunau <j at jannau.net>
> ---
Reviewed-by: Sven Peter <sven at kernel.org>
> Changes in v2:
> - Use a local variable instead of the complex indirection with the
> resources array
> - Link to v1: https://lore.kernel.org/r/20260207-phy-apple-resource-err-ptr-v1-1-78735b07ed2d@jannau.net
> ---
> drivers/phy/apple/atc.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/phy/apple/atc.c b/drivers/phy/apple/atc.c
> index dc867f368b68748ea953e594ad998d7f965d8d1d..64d0c3dba1cbb95f867d338da706225ee0bf79f7 100644
> --- a/drivers/phy/apple/atc.c
> +++ b/drivers/phy/apple/atc.c
> @@ -2202,14 +2202,16 @@ static int atcphy_map_resources(struct platform_device *pdev, struct apple_atcph
> { "pipehandler", &atcphy->regs.pipehandler, NULL },
> };
> struct resource *res;
> + void __iomem *addr;
>
> for (int i = 0; i < ARRAY_SIZE(resources); i++) {
> res = platform_get_resource_byname(pdev, IORESOURCE_MEM, resources[i].name);
> - *resources[i].addr = devm_ioremap_resource(&pdev->dev, res);
> - if (IS_ERR(resources[i].addr))
> - return dev_err_probe(atcphy->dev, PTR_ERR(resources[i].addr),
> + addr = devm_ioremap_resource(&pdev->dev, res);
> + if (IS_ERR(addr))
> + return dev_err_probe(atcphy->dev, PTR_ERR(addr),
> "Unable to map %s regs", resources[i].name);
>
> + *resources[i].addr = addr;
This is much easier to understand. I missed return PTR_ERR(..) error in
the first version and introduced it originally due to the indirection as
well.
Best,
Sven
More information about the linux-arm-kernel
mailing list