Re: [cocci] [PATCH 01/61] Coccinelle: Prefer IS_ERR_OR_NULL over manual NULL check
Markus Elfring <[email protected]> Tue, 10 Mar 2026 16:41:12 +0100
| 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]> |
> Find and convert uses of IS_ERR() plus NULL check to IS_ERR_OR_NULL(). … Can this information trigger any more consequences on corresponding summary phrases? … > +++ b/scripts/coccinelle/api/is_err_or_null.cocci > @@ -0,0 +1,125 @@ … > +virtual patch > +virtual report > +virtual org How will interests evolve further for the support of the operation mode “context”? > +@p1 depends on patch@ > +expression E; > +@@ > +( > +- E != NULL && !IS_ERR(E) > ++ !IS_ERR_OR_NULL(E) > +| > +- E == NULL || IS_ERR(E) > ++ IS_ERR_OR_NULL(E) > +| > +- !IS_ERR(E) && E != NULL > ++ !IS_ERR_OR_NULL(E) > +| > +- IS_ERR(E) || E == NULL > ++ IS_ERR_OR_NULL(E) > +) Did you eventually check probabilities for the occurrence of mentioned case distinctions? > +@p2 depends on patch@ … I suggest to reconsider “side effects” according to the splitting of these SmPL rules once more. … > +@r2 depends on report || org@ > +identifier I; > +expression E; > +position p; > +@@ > +( > +* (I = E) != NULL && ... && !IS_ERR@p(I) > +| > +* (I = E) == NULL || ... || IS_ERR@p(I) > +) I doubt that the usage of SmPL asterisks fits to these two operation modes. … > +@p5 depends on patch disable unlikely @ > +expression E; > +@@ > +-\( likely \| unlikely \)( > +( > + IS_ERR_OR_NULL(E) > +| > + !IS_ERR_OR_NULL(E) > +) > +-) * Would it be nicer to move such SmPL code to the end of the patch rule listing? * Can this source code search pattern matter also for further operation modes? Regards, Markus