diff mbox series

PCI: imx: Fix an IS_ERR() vs NULL bug

Message ID 20181218082329.GB440@kadam (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show
Series PCI: imx: Fix an IS_ERR() vs NULL bug | expand

Commit Message

Dan Carpenter Dec. 18, 2018, 8:23 a.m. UTC
The device_link_add() function doesn't return error pointers, it returns
NULL if there is an error.

Fixes: 7a6991159bcd ("PCI: imx: Add multi-pd support")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 drivers/pci/controller/dwc/pci-imx6.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Leonard Crestez Dec. 18, 2018, 8:54 a.m. UTC | #1
On Tue, 2018-12-18 at 11:23 +0300, Dan Carpenter wrote:
> The device_link_add() function doesn't return error pointers, it returns
> NULL if there is an error.
> 
> Fixes: 7a6991159bcd ("PCI: imx: Add multi-pd support")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>

I assume this was found with a static checker?
Lorenzo Pieralisi Dec. 18, 2018, 10:57 a.m. UTC | #2
On Tue, Dec 18, 2018 at 11:23:29AM +0300, Dan Carpenter wrote:
> The device_link_add() function doesn't return error pointers, it returns
> NULL if there is an error.
> 
> Fixes: 7a6991159bcd ("PCI: imx: Add multi-pd support")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
>  drivers/pci/controller/dwc/pci-imx6.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)

Thanks Dan, if you do not mind I will squash this in the initial
commit given that it is not upstream yet.

Lorenzo

> diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
> index b54b4590ccf9..8e7956224a5f 100644
> --- a/drivers/pci/controller/dwc/pci-imx6.c
> +++ b/drivers/pci/controller/dwc/pci-imx6.c
> @@ -326,9 +326,9 @@ static int imx6_pcie_attach_pd(struct device *dev)
>  			DL_FLAG_STATELESS |
>  			DL_FLAG_PM_RUNTIME |
>  			DL_FLAG_RPM_ACTIVE);
> -	if (IS_ERR(link)) {
> -		dev_err(dev, "Failed to add device_link to pcie pd: %ld\n", PTR_ERR(link));
> -		return PTR_ERR(link);
> +	if (!link) {
> +		dev_err(dev, "Failed to add device_link to pcie pd.\n");
> +		return -EINVAL;
>  	}
>  
>  	imx6_pcie->pd_pcie_phy = dev_pm_domain_attach_by_name(dev, "pcie_phy");
> -- 
> 2.17.1
>
Dan Carpenter Dec. 18, 2018, 11:02 a.m. UTC | #3
On Tue, Dec 18, 2018 at 08:54:36AM +0000, Leonard Crestez wrote:
> On Tue, 2018-12-18 at 11:23 +0300, Dan Carpenter wrote:
> > The device_link_add() function doesn't return error pointers, it returns
> > NULL if there is an error.
> > 
> > Fixes: 7a6991159bcd ("PCI: imx: Add multi-pd support")
> > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
> 
> I assume this was found with a static checker?

It's an unpublished Smatch check...  It complains about running IS_ERR()
on things which aren't an error pointer.  The problem is that that
happens all the time intentionally so i haven't published it.  I should
probably make a version which only complains if it is an assignment from
a function that returns NULL.

(Even then it's problematic because it can depend on the .config)

regards,
dan carpenter
Dan Carpenter Dec. 18, 2018, 11:03 a.m. UTC | #4
On Tue, Dec 18, 2018 at 10:57:42AM +0000, Lorenzo Pieralisi wrote:
> On Tue, Dec 18, 2018 at 11:23:29AM +0300, Dan Carpenter wrote:
> > The device_link_add() function doesn't return error pointers, it returns
> > NULL if there is an error.
> > 
> > Fixes: 7a6991159bcd ("PCI: imx: Add multi-pd support")
> > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> > ---
> >  drivers/pci/controller/dwc/pci-imx6.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> Thanks Dan, if you do not mind I will squash this in the initial
> commit given that it is not upstream yet.
> 

I don't mind at all.  Thanks.

regards,
dan carpenter
diff mbox series

Patch

diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index b54b4590ccf9..8e7956224a5f 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -326,9 +326,9 @@  static int imx6_pcie_attach_pd(struct device *dev)
 			DL_FLAG_STATELESS |
 			DL_FLAG_PM_RUNTIME |
 			DL_FLAG_RPM_ACTIVE);
-	if (IS_ERR(link)) {
-		dev_err(dev, "Failed to add device_link to pcie pd: %ld\n", PTR_ERR(link));
-		return PTR_ERR(link);
+	if (!link) {
+		dev_err(dev, "Failed to add device_link to pcie pd.\n");
+		return -EINVAL;
 	}
 
 	imx6_pcie->pd_pcie_phy = dev_pm_domain_attach_by_name(dev, "pcie_phy");