Re: [PATCH] phy: fix ptr_ret.cocci warnings

From: Thierry Reding
Date: Tue Nov 17 2020 - 08:28:28 EST


On Tue, Nov 17, 2020 at 07:00:32AM +0800, kernel test robot wrote:
> From: kernel test robot <lkp@xxxxxxxxx>
>
> drivers/phy/tegra/phy-tegra194-p2u.c:95:1-3: WARNING: PTR_ERR_OR_ZERO can be used
>
>
> Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
>
> Generated by: scripts/coccinelle/api/ptr_ret.cocci
>
> Fixes: 133552bf03ed ("phy: Remove CONFIG_ARCH_* check for related subdir in Makefile")
> CC: Tiezhu Yang <yangtiezhu@xxxxxxxxxxx>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Signed-off-by: kernel test robot <lkp@xxxxxxxxx>
> ---
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 09162bc32c880a791c6c0668ce0745cf7958f576
> commit: 133552bf03edbe3892767a4b64c56e3bed746374 phy: Remove CONFIG_ARCH_* check for related subdir in Makefile
>
> phy-tegra194-p2u.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)

A similar patch was recently sent out against the pci-tegra driver. That
was perhaps the third time or so that it happened and both the Bjorn
(the PCI maintainer) and I have agreed multiple times in the past that
this isn't an actual improvement.

There are two reasons why I think this is actually worse than the
original: 1) this doesn't look like regular error handling and therefore
becomes more difficult to read and 2) if we ever need to add code
between the devm_of_phy_provider_register() and the final successful
return, we need to go and effectively revert this patch again.

I wonder if there's enough consensus that PTR_ERR_OR_ZERO() is really
that useful.

Thierry

>
> --- a/drivers/phy/tegra/phy-tegra194-p2u.c
> +++ b/drivers/phy/tegra/phy-tegra194-p2u.c
> @@ -92,10 +92,7 @@ static int tegra_p2u_probe(struct platfo
> phy_set_drvdata(generic_phy, phy);
>
> phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate);
> - if (IS_ERR(phy_provider))
> - return PTR_ERR(phy_provider);
> -
> - return 0;
> + return PTR_ERR_OR_ZERO(phy_provider);
> }
>
> static const struct of_device_id tegra_p2u_id_table[] = {

Attachment: signature.asc
Description: PGP signature