[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