Re: [cocci] [PATCH 01/61] Coccinelle: Prefer IS_ERR_OR_NULL over manual NULL check
Krzysztof Kozlowski <[email protected]> Thu, 16 Apr 2026 14:30:37 +0200
| Newsgroups | fr.inria.cocci,dev.linux.lists.dm-devel,dev.linux.lists.gfs2,dev.linux.lists.iommu,dev.linux.lists.ntfs3,dev.linux.lists.sched-ext,dev.linux.lists.v9fs,org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel,org.freedesktop.lists.intel-gfx,org.infradead.lists.linux-mtd,org.infradead.lists.linux-phy,org.infradead.lists.linux-rockchip,org.kernel.vger.bpf,org.kernel.vger.ceph-devel,org.kernel.vger.kvm,org.kernel.vger.linux-block,org.kernel.vger.linux-bluetooth,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-cifs,org.kernel.vger.linux-clk,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-gpio,org.kernel.vger.linux-hyperv,org.kernel.vger.linux-input,org.kernel.vger.linux-kernel,org.kernel.vger.linux-leds,org.kernel.vger.linux-media,org.kernel.vger.linux-mips,org.kernel.vger.linux-modules,org.kernel.vger.linux-nfs,org.kernel.vger.linux-omap,org.kernel.vger.linux-pm,org.kernel.vger.linux-s390,org.kernel.vger.linux-scsi,org.kernel.vger.linux-sctp,org.kernel.vger.linux-security-module,org.kernel.vger.linux-sh,org.kernel.vger.linux-sound,org.kernel.vger.linux-trace-kernel,org.kernel.vger.linux-usb,org.kernel.vger.linux-wireless,org.kernel.vger.netdev,org.kernel.vger.target-devel,org.kvack.linux-mm,org.osuosl.intel-wired-lan,org.ozlabs.lists.linux-erofs |
|---|---|
| Message-ID | <[email protected]> |
On 10/03/2026 12:48, Philipp Hahn wrote: > Find and convert uses of IS_ERR() plus NULL check to IS_ERR_OR_NULL(). > > There are several cases where `!ptr && WARN_ON[_ONCE](IS_ERR(ptr))` is > used: > - arch/x86/kernel/callthunks.c:215 WARN_ON_ONCE > - drivers/clk/clk.c:4561 WARN_ON_ONCE > - drivers/interconnect/core.c:793 WARN_ON > - drivers/reset/core.c:718 WARN_ON > The change is not 100% semantical equivalent as the warning will now > also happen when the pointer is NULL. > > To: Julia Lawall <[email protected]> > To: Nicolas Palix <[email protected]> > Cc: [email protected] > Cc: [email protected] > > --- > drivers/clocksource/mips-gic-timer.c:283 looks suspicious: ret != clk, > but Daniel Lezcano verified it as cottect. > > There are some cases where the checks are part of a larger expression: > - mm/kmemleak.c:1095 > - mm/kmemleak.c:1155 > - mm/kmemleak.c:1173 > - mm/kmemleak.c:1290 > - mm/kmemleak.c:1328 > - mm/kmemleak.c:1241 > - mm/kmemleak.c:1310 > - mm/kmemleak.c:1258 > - net/netlink/af_netlink.c:2670 > Thanks to Julia Lawall for the help to also handle them. > > Signed-off-by: Philipp Hahn <[email protected]> > --- > scripts/coccinelle/api/is_err_or_null.cocci | 125 ++++++++++++++++++++++++++++ > 1 file changed, 125 insertions(+) > Neither this, nor try from 2011, nor any future try should be accepted, because it creates impression IS_ERR_OR_NULL is somehow okay. No, it is not okay, it is a discouraged pattern leading to less readable and maintainable code. We should not have therefore any tools suggesting usage of IS_ERR_OR_NULL, because people will be converting poor code into that, instead of fixing that poor code. Best regards, Krzysztof