Re: [PATCH net-next] net/fsl: xgmac_mdio: fix return value check in xgmac_mdio_probe()
From: Dan Carpenter <hidden>
Date: 2022-02-01 11:08:12
Also in:
kernel-janitors
On Sun, Jan 30, 2022 at 08:58:55AM +0800, weiyongjun (A) wrote:
quoted
On Sat, Jan 29, 2022 at 01:27, Wei Yongjun [off-list ref] wrote:quoted
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 <redacted> Signed-off-by: Wei Yongjun <redacted>Reviewed-by: Tobias Waldekranz <tobias@waldekranz.com> 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