Re: [PATCH net-next] net/fsl: xgmac_mdio: fix return value check in xgmac_mdio_probe()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jan 30, 2022 at 08:58:55AM +0800, weiyongjun (A) wrote:
> 
> > On Sat, Jan 29, 2022 at 01:27, Wei Yongjun <weiyongjun1@xxxxxxxxxx> wrote:
> > > In case of error, the function devm_ioremap() returns NULL pointer
> > > not ERR_PTR(). The IS_ERR() test in the return value check should
> > > be replaced with NULL test.
> > > 
> > > Fixes: 1d14eb15dc2c ("net/fsl: xgmac_mdio: Use managed device resources")
> > > Reported-by: Hulk Robot <hulkci@xxxxxxxxxx>
> > > Signed-off-by: Wei Yongjun <weiyongjun1@xxxxxxxxxx>
> > Reviewed-by: Tobias Waldekranz <tobias@xxxxxxxxxxxxxx>
> > 
> > Sorry about that. I started out by using devm_ioremap_resource, which
> > uses the in-band error signaling, and forgot to match the guard when I
> > changed it.
> > 
> > I see that this was reported by your CI, do you mind me asking what it
> > is running in the back-end? At least my version of sparse does not seem
> > to catch this.
> 
> 
> It was reported by coccinelle with follow script:
> 
> 
> @@
> expression ret, E;
> @@
> ret = \(devm_ioport_map\|
> devm_ioremap\|
> devm_ioremap_wc\|
> devm_irq_alloc_generic_chip\|
> devm_kasprintf\|
> devm_kcalloc\|
> devm_kmalloc\|
> devm_kmalloc_array\|
> devm_kmemdup\|
> devm_kstrdup\|
> devm_kzalloc\|
> \)(...);
> ... when != ret = E
> (
> - IS_ERR(ret)
> + !ret
> |
> - !IS_ERR(ret)
> + ret
> |
> - PTR_ERR(ret)
> + -ENOMEM
> )
> 
> 
> 
> It seems smatch also can report this.

Yeah.  I had this patch in my postponed messages but you beat me to
sending it.

The Smatch check for this requires you to have the cross function
database built.  I should update it to remove that requirement for
at least the common functions that you have listed.

regards,
dan carpenter




[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux