diff mbox series

drivers/pci/controller: fix warning PTR_ERR_OR_ZERO can be used

Message ID 20190525085748.GA10926@hari-Inspiron-1545 (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show
Series drivers/pci/controller: fix warning PTR_ERR_OR_ZERO can be used | expand

Commit Message

Hariprasad Kelam May 25, 2019, 8:57 a.m. UTC
fix below warnings reported by coccichek

/drivers/pci/controller/pci-tegra.c:1132:1-3: WARNING: PTR_ERR_OR_ZERO
can be used
./drivers/pci/controller/dwc/pcie-qcom.c:703:1-3: WARNING:
PTR_ERR_OR_ZERO can be used
./drivers/pci/controller/dwc/pci-meson.c:185:1-3: WARNING:
PTR_ERR_OR_ZERO can be used
./drivers/pci/controller/dwc/pci-meson.c:262:1-3: WARNING:
PTR_ERR_OR_ZERO can be used
./drivers/pci/controller/dwc/pcie-kirin.c:141:1-3: WARNING:
PTR_ERR_OR_ZERO can be used
./drivers/pci/controller/dwc/pcie-kirin.c:177:1-3: WARNING:
PTR_ERR_OR_ZERO can be used
./drivers/pci/controller/dwc/pci-exynos.c:95:1-3: WARNING:
PTR_ERR_OR_ZERO can be used

Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
---
 drivers/pci/controller/dwc/pci-exynos.c | 4 +---
 drivers/pci/controller/dwc/pci-meson.c  | 8 ++------
 drivers/pci/controller/dwc/pcie-kirin.c | 8 ++------
 drivers/pci/controller/dwc/pcie-qcom.c  | 4 +---
 drivers/pci/controller/pci-tegra.c      | 4 +---
 5 files changed, 7 insertions(+), 21 deletions(-)

Comments

Marc Gonzalez May 27, 2019, 12:40 p.m. UTC | #1
On 25/05/2019 10:57, Hariprasad Kelam wrote:

> fix below warnings reported by coccichek
> 
> /drivers/pci/controller/pci-tegra.c:1132:1-3: WARNING: PTR_ERR_OR_ZERO
> can be used
> ./drivers/pci/controller/dwc/pcie-qcom.c:703:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pci-meson.c:185:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pci-meson.c:262:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pcie-kirin.c:141:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pcie-kirin.c:177:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pci-exynos.c:95:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> 
> Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
> ---
>  drivers/pci/controller/dwc/pci-exynos.c | 4 +---
>  drivers/pci/controller/dwc/pci-meson.c  | 8 ++------
>  drivers/pci/controller/dwc/pcie-kirin.c | 8 ++------
>  drivers/pci/controller/dwc/pcie-qcom.c  | 4 +---
>  drivers/pci/controller/pci-tegra.c      | 4 +---
>  5 files changed, 7 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
> index 0ed235d..6c421e6 100644
> --- a/drivers/pci/controller/dwc/pcie-qcom.c
> +++ b/drivers/pci/controller/dwc/pcie-qcom.c
> @@ -700,10 +700,8 @@ static int qcom_pcie_get_resources_2_4_0(struct qcom_pcie *pcie)
>  		return PTR_ERR(res->ahb_reset);
>  
>  	res->phy_ahb_reset = devm_reset_control_get_exclusive(dev, "phy_ahb");
> -	if (IS_ERR(res->phy_ahb_reset))
> -		return PTR_ERR(res->phy_ahb_reset);
>  
> -	return 0;
> +	return PTR_ERR_OR_ZERO(res->phy_ahb_reset);
>  }
>  
>  static void qcom_pcie_deinit_2_4_0(struct qcom_pcie *pcie)

My opinion doesn't carry any weight, but IMO using PTR_ERR_OR_ZERO instead
of PTR_ERR breaks the symmetry of the previous operations.

It seems to give the last operation more importance than the previous ones,
which I don't find desirable.

Regards.
Thierry Reding May 27, 2019, 2:09 p.m. UTC | #2
On Sat, May 25, 2019 at 02:27:48PM +0530, Hariprasad Kelam wrote:
> fix below warnings reported by coccichek
> 
> /drivers/pci/controller/pci-tegra.c:1132:1-3: WARNING: PTR_ERR_OR_ZERO
> can be used

This has been discussed many times before, but PTR_ERR_OR_ZERO is not
liked by everybody. Most of these are actually in place on purpose. One
of the reasons I hear most frequently cited in opposition to this macro
is that it complicates things when you need to add some new code in, so
PTR_ERR_OR_ZERO() becomes wrong and has to be changed. The original,
with the "return 0;" being explicit doesn't have that problem and you
can easily add things in between.

It's obviously up to Bjorn to decide whether he wants this, but I
vaguely remember discussing this particular instance with him before and
we both agreed that we didn't think this was worth it.

Perhaps it's time to make checkpatch not complain about this anymore? Or
at least make this not a WARNING.

Thierry

> ./drivers/pci/controller/dwc/pcie-qcom.c:703:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pci-meson.c:185:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pci-meson.c:262:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pcie-kirin.c:141:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pcie-kirin.c:177:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> ./drivers/pci/controller/dwc/pci-exynos.c:95:1-3: WARNING:
> PTR_ERR_OR_ZERO can be used
> 
> Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
> ---
>  drivers/pci/controller/dwc/pci-exynos.c | 4 +---
>  drivers/pci/controller/dwc/pci-meson.c  | 8 ++------
>  drivers/pci/controller/dwc/pcie-kirin.c | 8 ++------
>  drivers/pci/controller/dwc/pcie-qcom.c  | 4 +---
>  drivers/pci/controller/pci-tegra.c      | 4 +---
>  5 files changed, 7 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c
> index cee5f2f..b0b4849 100644
> --- a/drivers/pci/controller/dwc/pci-exynos.c
> +++ b/drivers/pci/controller/dwc/pci-exynos.c
> @@ -92,10 +92,8 @@ static int exynos5440_pcie_get_mem_resources(struct platform_device *pdev,
>  
>  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>  	ep->mem_res->elbi_base = devm_ioremap_resource(dev, res);
> -	if (IS_ERR(ep->mem_res->elbi_base))
> -		return PTR_ERR(ep->mem_res->elbi_base);
>  
> -	return 0;
> +	return PTR_ERR_OR_ZERO(ep->mem_res->elbi_base);
>  }
>  
>  static int exynos5440_pcie_get_clk_resources(struct exynos_pcie *ep)
> diff --git a/drivers/pci/controller/dwc/pci-meson.c b/drivers/pci/controller/dwc/pci-meson.c
> index e35e9ea..1ca78c2 100644
> --- a/drivers/pci/controller/dwc/pci-meson.c
> +++ b/drivers/pci/controller/dwc/pci-meson.c
> @@ -182,10 +182,8 @@ static int meson_pcie_get_mems(struct platform_device *pdev,
>  
>  	/* Meson SoC has two PCI controllers use same phy register*/
>  	mp->mem_res.phy_base = meson_pcie_get_mem_shared(pdev, mp, "phy");
> -	if (IS_ERR(mp->mem_res.phy_base))
> -		return PTR_ERR(mp->mem_res.phy_base);
>  
> -	return 0;
> +	return PTR_ERR_OR_ZERO(mp->mem_res.phy_base);
>  }
>  
>  static void meson_pcie_power_on(struct meson_pcie *mp)
> @@ -259,10 +257,8 @@ static int meson_pcie_probe_clocks(struct meson_pcie *mp)
>  		return PTR_ERR(res->general_clk);
>  
>  	res->clk = meson_pcie_probe_clock(dev, "pcie", 0);
> -	if (IS_ERR(res->clk))
> -		return PTR_ERR(res->clk);
>  
> -	return 0;
> +	return PTR_ERR_OR_ZERO(res->clk);
>  }
>  
>  static inline void meson_elb_writel(struct meson_pcie *mp, u32 val, u32 reg)
> diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c
> index 9b59929..87cfdb4 100644
> --- a/drivers/pci/controller/dwc/pcie-kirin.c
> +++ b/drivers/pci/controller/dwc/pcie-kirin.c
> @@ -138,10 +138,8 @@ static long kirin_pcie_get_clk(struct kirin_pcie *kirin_pcie,
>  		return PTR_ERR(kirin_pcie->apb_sys_clk);
>  
>  	kirin_pcie->pcie_aclk = devm_clk_get(dev, "pcie_aclk");
> -	if (IS_ERR(kirin_pcie->pcie_aclk))
> -		return PTR_ERR(kirin_pcie->pcie_aclk);
>  
> -	return 0;
> +	return PTR_ERR_OR_ZERO(kirin_pcie->pcie_aclk);
>  }
>  
>  static long kirin_pcie_get_resource(struct kirin_pcie *kirin_pcie,
> @@ -174,10 +172,8 @@ static long kirin_pcie_get_resource(struct kirin_pcie *kirin_pcie,
>  
>  	kirin_pcie->sysctrl =
>  		syscon_regmap_lookup_by_compatible("hisilicon,hi3660-sctrl");
> -	if (IS_ERR(kirin_pcie->sysctrl))
> -		return PTR_ERR(kirin_pcie->sysctrl);
>  
> -	return 0;
> +	return PTR_ERR_OR_ZERO(kirin_pcie->sysctrl);
>  }
>  
>  static int kirin_pcie_phy_init(struct kirin_pcie *kirin_pcie)
> diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
> index 0ed235d..6c421e6 100644
> --- a/drivers/pci/controller/dwc/pcie-qcom.c
> +++ b/drivers/pci/controller/dwc/pcie-qcom.c
> @@ -700,10 +700,8 @@ static int qcom_pcie_get_resources_2_4_0(struct qcom_pcie *pcie)
>  		return PTR_ERR(res->ahb_reset);
>  
>  	res->phy_ahb_reset = devm_reset_control_get_exclusive(dev, "phy_ahb");
> -	if (IS_ERR(res->phy_ahb_reset))
> -		return PTR_ERR(res->phy_ahb_reset);
>  
> -	return 0;
> +	return PTR_ERR_OR_ZERO(res->phy_ahb_reset);
>  }
>  
>  static void qcom_pcie_deinit_2_4_0(struct qcom_pcie *pcie)
> diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c
> index 464ba25..3cd5069 100644
> --- a/drivers/pci/controller/pci-tegra.c
> +++ b/drivers/pci/controller/pci-tegra.c
> @@ -1129,10 +1129,8 @@ static int tegra_pcie_resets_get(struct tegra_pcie *pcie)
>  		return PTR_ERR(pcie->afi_rst);
>  
>  	pcie->pcie_xrst = devm_reset_control_get_exclusive(dev, "pcie_x");
> -	if (IS_ERR(pcie->pcie_xrst))
> -		return PTR_ERR(pcie->pcie_xrst);
>  
> -	return 0;
> +	return PTR_ERR_OR_ZERO(pcie->pcie_xrst);
>  }
>  
>  static int tegra_pcie_phys_get_legacy(struct tegra_pcie *pcie)
> -- 
> 2.7.4
>
Lorenzo Pieralisi May 31, 2019, 2:47 p.m. UTC | #3
On Mon, May 27, 2019 at 04:09:52PM +0200, Thierry Reding wrote:
> On Sat, May 25, 2019 at 02:27:48PM +0530, Hariprasad Kelam wrote:
> > fix below warnings reported by coccichek
> > 
> > /drivers/pci/controller/pci-tegra.c:1132:1-3: WARNING: PTR_ERR_OR_ZERO
> > can be used
> 
> This has been discussed many times before, but PTR_ERR_OR_ZERO is not
> liked by everybody. Most of these are actually in place on purpose. One
> of the reasons I hear most frequently cited in opposition to this macro
> is that it complicates things when you need to add some new code in, so
> PTR_ERR_OR_ZERO() becomes wrong and has to be changed. The original,
> with the "return 0;" being explicit doesn't have that problem and you
> can easily add things in between.
> 
> It's obviously up to Bjorn to decide whether he wants this, but I
> vaguely remember discussing this particular instance with him before and
> we both agreed that we didn't think this was worth it.

+1, patch dropped, thanks Hariprasad for reporting it anyway.

Lorenzo

> Perhaps it's time to make checkpatch not complain about this anymore? Or
> at least make this not a WARNING.
> 
> Thierry
> 
> > ./drivers/pci/controller/dwc/pcie-qcom.c:703:1-3: WARNING:
> > PTR_ERR_OR_ZERO can be used
> > ./drivers/pci/controller/dwc/pci-meson.c:185:1-3: WARNING:
> > PTR_ERR_OR_ZERO can be used
> > ./drivers/pci/controller/dwc/pci-meson.c:262:1-3: WARNING:
> > PTR_ERR_OR_ZERO can be used
> > ./drivers/pci/controller/dwc/pcie-kirin.c:141:1-3: WARNING:
> > PTR_ERR_OR_ZERO can be used
> > ./drivers/pci/controller/dwc/pcie-kirin.c:177:1-3: WARNING:
> > PTR_ERR_OR_ZERO can be used
> > ./drivers/pci/controller/dwc/pci-exynos.c:95:1-3: WARNING:
> > PTR_ERR_OR_ZERO can be used
> > 
> > Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
> > ---
> >  drivers/pci/controller/dwc/pci-exynos.c | 4 +---
> >  drivers/pci/controller/dwc/pci-meson.c  | 8 ++------
> >  drivers/pci/controller/dwc/pcie-kirin.c | 8 ++------
> >  drivers/pci/controller/dwc/pcie-qcom.c  | 4 +---
> >  drivers/pci/controller/pci-tegra.c      | 4 +---
> >  5 files changed, 7 insertions(+), 21 deletions(-)
> > 
> > diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c
> > index cee5f2f..b0b4849 100644
> > --- a/drivers/pci/controller/dwc/pci-exynos.c
> > +++ b/drivers/pci/controller/dwc/pci-exynos.c
> > @@ -92,10 +92,8 @@ static int exynos5440_pcie_get_mem_resources(struct platform_device *pdev,
> >  
> >  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >  	ep->mem_res->elbi_base = devm_ioremap_resource(dev, res);
> > -	if (IS_ERR(ep->mem_res->elbi_base))
> > -		return PTR_ERR(ep->mem_res->elbi_base);
> >  
> > -	return 0;
> > +	return PTR_ERR_OR_ZERO(ep->mem_res->elbi_base);
> >  }
> >  
> >  static int exynos5440_pcie_get_clk_resources(struct exynos_pcie *ep)
> > diff --git a/drivers/pci/controller/dwc/pci-meson.c b/drivers/pci/controller/dwc/pci-meson.c
> > index e35e9ea..1ca78c2 100644
> > --- a/drivers/pci/controller/dwc/pci-meson.c
> > +++ b/drivers/pci/controller/dwc/pci-meson.c
> > @@ -182,10 +182,8 @@ static int meson_pcie_get_mems(struct platform_device *pdev,
> >  
> >  	/* Meson SoC has two PCI controllers use same phy register*/
> >  	mp->mem_res.phy_base = meson_pcie_get_mem_shared(pdev, mp, "phy");
> > -	if (IS_ERR(mp->mem_res.phy_base))
> > -		return PTR_ERR(mp->mem_res.phy_base);
> >  
> > -	return 0;
> > +	return PTR_ERR_OR_ZERO(mp->mem_res.phy_base);
> >  }
> >  
> >  static void meson_pcie_power_on(struct meson_pcie *mp)
> > @@ -259,10 +257,8 @@ static int meson_pcie_probe_clocks(struct meson_pcie *mp)
> >  		return PTR_ERR(res->general_clk);
> >  
> >  	res->clk = meson_pcie_probe_clock(dev, "pcie", 0);
> > -	if (IS_ERR(res->clk))
> > -		return PTR_ERR(res->clk);
> >  
> > -	return 0;
> > +	return PTR_ERR_OR_ZERO(res->clk);
> >  }
> >  
> >  static inline void meson_elb_writel(struct meson_pcie *mp, u32 val, u32 reg)
> > diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c
> > index 9b59929..87cfdb4 100644
> > --- a/drivers/pci/controller/dwc/pcie-kirin.c
> > +++ b/drivers/pci/controller/dwc/pcie-kirin.c
> > @@ -138,10 +138,8 @@ static long kirin_pcie_get_clk(struct kirin_pcie *kirin_pcie,
> >  		return PTR_ERR(kirin_pcie->apb_sys_clk);
> >  
> >  	kirin_pcie->pcie_aclk = devm_clk_get(dev, "pcie_aclk");
> > -	if (IS_ERR(kirin_pcie->pcie_aclk))
> > -		return PTR_ERR(kirin_pcie->pcie_aclk);
> >  
> > -	return 0;
> > +	return PTR_ERR_OR_ZERO(kirin_pcie->pcie_aclk);
> >  }
> >  
> >  static long kirin_pcie_get_resource(struct kirin_pcie *kirin_pcie,
> > @@ -174,10 +172,8 @@ static long kirin_pcie_get_resource(struct kirin_pcie *kirin_pcie,
> >  
> >  	kirin_pcie->sysctrl =
> >  		syscon_regmap_lookup_by_compatible("hisilicon,hi3660-sctrl");
> > -	if (IS_ERR(kirin_pcie->sysctrl))
> > -		return PTR_ERR(kirin_pcie->sysctrl);
> >  
> > -	return 0;
> > +	return PTR_ERR_OR_ZERO(kirin_pcie->sysctrl);
> >  }
> >  
> >  static int kirin_pcie_phy_init(struct kirin_pcie *kirin_pcie)
> > diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
> > index 0ed235d..6c421e6 100644
> > --- a/drivers/pci/controller/dwc/pcie-qcom.c
> > +++ b/drivers/pci/controller/dwc/pcie-qcom.c
> > @@ -700,10 +700,8 @@ static int qcom_pcie_get_resources_2_4_0(struct qcom_pcie *pcie)
> >  		return PTR_ERR(res->ahb_reset);
> >  
> >  	res->phy_ahb_reset = devm_reset_control_get_exclusive(dev, "phy_ahb");
> > -	if (IS_ERR(res->phy_ahb_reset))
> > -		return PTR_ERR(res->phy_ahb_reset);
> >  
> > -	return 0;
> > +	return PTR_ERR_OR_ZERO(res->phy_ahb_reset);
> >  }
> >  
> >  static void qcom_pcie_deinit_2_4_0(struct qcom_pcie *pcie)
> > diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c
> > index 464ba25..3cd5069 100644
> > --- a/drivers/pci/controller/pci-tegra.c
> > +++ b/drivers/pci/controller/pci-tegra.c
> > @@ -1129,10 +1129,8 @@ static int tegra_pcie_resets_get(struct tegra_pcie *pcie)
> >  		return PTR_ERR(pcie->afi_rst);
> >  
> >  	pcie->pcie_xrst = devm_reset_control_get_exclusive(dev, "pcie_x");
> > -	if (IS_ERR(pcie->pcie_xrst))
> > -		return PTR_ERR(pcie->pcie_xrst);
> >  
> > -	return 0;
> > +	return PTR_ERR_OR_ZERO(pcie->pcie_xrst);
> >  }
> >  
> >  static int tegra_pcie_phys_get_legacy(struct tegra_pcie *pcie)
> > -- 
> > 2.7.4
> >
diff mbox series

Patch

diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c
index cee5f2f..b0b4849 100644
--- a/drivers/pci/controller/dwc/pci-exynos.c
+++ b/drivers/pci/controller/dwc/pci-exynos.c
@@ -92,10 +92,8 @@  static int exynos5440_pcie_get_mem_resources(struct platform_device *pdev,
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	ep->mem_res->elbi_base = devm_ioremap_resource(dev, res);
-	if (IS_ERR(ep->mem_res->elbi_base))
-		return PTR_ERR(ep->mem_res->elbi_base);
 
-	return 0;
+	return PTR_ERR_OR_ZERO(ep->mem_res->elbi_base);
 }
 
 static int exynos5440_pcie_get_clk_resources(struct exynos_pcie *ep)
diff --git a/drivers/pci/controller/dwc/pci-meson.c b/drivers/pci/controller/dwc/pci-meson.c
index e35e9ea..1ca78c2 100644
--- a/drivers/pci/controller/dwc/pci-meson.c
+++ b/drivers/pci/controller/dwc/pci-meson.c
@@ -182,10 +182,8 @@  static int meson_pcie_get_mems(struct platform_device *pdev,
 
 	/* Meson SoC has two PCI controllers use same phy register*/
 	mp->mem_res.phy_base = meson_pcie_get_mem_shared(pdev, mp, "phy");
-	if (IS_ERR(mp->mem_res.phy_base))
-		return PTR_ERR(mp->mem_res.phy_base);
 
-	return 0;
+	return PTR_ERR_OR_ZERO(mp->mem_res.phy_base);
 }
 
 static void meson_pcie_power_on(struct meson_pcie *mp)
@@ -259,10 +257,8 @@  static int meson_pcie_probe_clocks(struct meson_pcie *mp)
 		return PTR_ERR(res->general_clk);
 
 	res->clk = meson_pcie_probe_clock(dev, "pcie", 0);
-	if (IS_ERR(res->clk))
-		return PTR_ERR(res->clk);
 
-	return 0;
+	return PTR_ERR_OR_ZERO(res->clk);
 }
 
 static inline void meson_elb_writel(struct meson_pcie *mp, u32 val, u32 reg)
diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c
index 9b59929..87cfdb4 100644
--- a/drivers/pci/controller/dwc/pcie-kirin.c
+++ b/drivers/pci/controller/dwc/pcie-kirin.c
@@ -138,10 +138,8 @@  static long kirin_pcie_get_clk(struct kirin_pcie *kirin_pcie,
 		return PTR_ERR(kirin_pcie->apb_sys_clk);
 
 	kirin_pcie->pcie_aclk = devm_clk_get(dev, "pcie_aclk");
-	if (IS_ERR(kirin_pcie->pcie_aclk))
-		return PTR_ERR(kirin_pcie->pcie_aclk);
 
-	return 0;
+	return PTR_ERR_OR_ZERO(kirin_pcie->pcie_aclk);
 }
 
 static long kirin_pcie_get_resource(struct kirin_pcie *kirin_pcie,
@@ -174,10 +172,8 @@  static long kirin_pcie_get_resource(struct kirin_pcie *kirin_pcie,
 
 	kirin_pcie->sysctrl =
 		syscon_regmap_lookup_by_compatible("hisilicon,hi3660-sctrl");
-	if (IS_ERR(kirin_pcie->sysctrl))
-		return PTR_ERR(kirin_pcie->sysctrl);
 
-	return 0;
+	return PTR_ERR_OR_ZERO(kirin_pcie->sysctrl);
 }
 
 static int kirin_pcie_phy_init(struct kirin_pcie *kirin_pcie)
diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
index 0ed235d..6c421e6 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -700,10 +700,8 @@  static int qcom_pcie_get_resources_2_4_0(struct qcom_pcie *pcie)
 		return PTR_ERR(res->ahb_reset);
 
 	res->phy_ahb_reset = devm_reset_control_get_exclusive(dev, "phy_ahb");
-	if (IS_ERR(res->phy_ahb_reset))
-		return PTR_ERR(res->phy_ahb_reset);
 
-	return 0;
+	return PTR_ERR_OR_ZERO(res->phy_ahb_reset);
 }
 
 static void qcom_pcie_deinit_2_4_0(struct qcom_pcie *pcie)
diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c
index 464ba25..3cd5069 100644
--- a/drivers/pci/controller/pci-tegra.c
+++ b/drivers/pci/controller/pci-tegra.c
@@ -1129,10 +1129,8 @@  static int tegra_pcie_resets_get(struct tegra_pcie *pcie)
 		return PTR_ERR(pcie->afi_rst);
 
 	pcie->pcie_xrst = devm_reset_control_get_exclusive(dev, "pcie_x");
-	if (IS_ERR(pcie->pcie_xrst))
-		return PTR_ERR(pcie->pcie_xrst);
 
-	return 0;
+	return PTR_ERR_OR_ZERO(pcie->pcie_xrst);
 }
 
 static int tegra_pcie_phys_get_legacy(struct tegra_pcie *pcie)