From: Krzysztof Kozlowski <krzk@kernel.org>
To: Philipp Hahn <phahn-oss@avm.de>,
amd-gfx@lists.freedesktop.org, apparmor@lists.ubuntu.com,
bpf@vger.kernel.org, ceph-devel@vger.kernel.org, cocci@inria.fr,
dm-devel@lists.linux.dev, dri-devel@lists.freedesktop.org,
gfs2@lists.linux.dev, intel-gfx@lists.freedesktop.org,
intel-wired-lan@lists.osuosl.org, iommu@lists.linux.dev,
kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-block@vger.kernel.org, linux-bluetooth@vger.kernel.org,
linux-btrfs@vger.kernel.org, linux-cifs@vger.kernel.org,
linux-clk@vger.kernel.org, linux-erofs@lists.ozlabs.org,
linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-hyperv@vger.kernel.org,
linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-leds@vger.kernel.org, linux-media@vger.kernel.org,
linux-mips@vger.kernel.org, linux-mm@kvack.org,
linux-modules@vger.kernel.org, linux-mtd@lists.infradead.org,
linux-nfs@vger.kernel.org, linux-omap@vger.kernel.org,
linux-phy@lists.infradead.org, linux-pm@vger.kernel.org,
linux-rockchip@lists.infradead.org, linux-s390@vger.kernel.org,
linux-scsi@vger.kernel.org, linux-sctp@vger.kernel.org,
linux-security-module@vger.kernel.org, linux-sh@vger.kernel.org,
linux-sound@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
linux-trace-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
ntfs3@lists.linux.dev, samba-technical@lists.samba.org,
sched-ext@lists.linux.dev, target-devel@vger.kernel.org,
tipc-discussion@lists.sourceforge.net, v9fs@lists.linux.dev
Cc: Julia Lawall <Julia.Lawall@inria.fr>,
Nicolas Palix <nicolas.palix@imag.fr>
Subject: Re: [PATCH 01/61] Coccinelle: Prefer IS_ERR_OR_NULL over manual NULL check
Date: Thu, 16 Apr 2026 14:30:37 +0200 [thread overview]
Message-ID: <1fba96bd-124d-431d-8de8-78688c248600@kernel.org> (raw)
In-Reply-To: <20260310-b4-is_err_or_null-v1-1-bd63b656022d@avm.de>
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 <Julia.Lawall@inria.fr>
> To: Nicolas Palix <nicolas.palix@imag.fr>
> Cc: cocci@inria.fr
> Cc: linux-kernel@vger.kernel.org
>
> ---
> 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 <phahn-oss@avm.de>
> ---
> 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
prev parent reply other threads:[~2026-04-16 12:30 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20260310-b4-is_err_or_null-v1-0-bd63b656022d@avm.de>
[not found] ` <20260310-b4-is_err_or_null-v1-37-bd63b656022d@avm.de>
2026-03-10 12:08 ` [PATCH 37/61] drm: Prefer IS_ERR_OR_NULL over manual NULL check Christian König
2026-03-10 12:40 ` Jani Nikula
[not found] ` <20260310-b4-is_err_or_null-v1-61-bd63b656022d@avm.de>
2026-03-10 12:23 ` [PATCH 61/61] file: Drop unlikely() around IS_ERR_OR_NULL() Jeff Layton
[not found] ` <20260310-b4-is_err_or_null-v1-30-bd63b656022d@avm.de>
2026-03-10 12:23 ` [PATCH 30/61] net/sunrpc: Prefer IS_ERR_OR_NULL over manual NULL check Jeff Layton
2026-03-10 13:23 ` Chuck Lever
2026-03-11 9:22 ` [Intel-wired-lan] " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-18-bd63b656022d@avm.de>
2026-03-10 12:28 ` [PATCH 18/61] sound: " Mark Brown
[not found] ` <20260310-b4-is_err_or_null-v1-57-bd63b656022d@avm.de>
2026-03-10 12:43 ` [PATCH 57/61] reset: " Philipp Zabel
2026-03-11 4:59 ` Masami Hiramatsu
[not found] ` <20260310-b4-is_err_or_null-v1-6-bd63b656022d@avm.de>
2026-03-10 13:45 ` [PATCH 06/61] 9p: " Christian Schoenebeck
2026-03-11 8:17 ` [Intel-wired-lan] " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-24-bd63b656022d@avm.de>
2026-03-10 13:47 ` [PATCH 24/61] net/9p: " Christian Schoenebeck
2026-03-11 9:19 ` [Intel-wired-lan] " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-15-bd63b656022d@avm.de>
2026-03-10 14:07 ` [PATCH 15/61] trace: " Steven Rostedt
2026-03-11 5:13 ` Masami Hiramatsu
2026-03-11 14:03 ` Steven Rostedt
2026-03-11 14:06 ` Geert Uytterhoeven
2026-03-10 14:14 ` [PATCH 00/61] treewide: Use IS_ERR_OR_NULL over manual NULL check - refactor Steven Rostedt
2026-03-10 14:23 ` Theodore Tso
[not found] ` <20260310-b4-is_err_or_null-v1-17-bd63b656022d@avm.de>
2026-03-10 14:45 ` [PATCH 17/61] module: Prefer IS_ERR_OR_NULL over manual NULL check Aaron Tomlin
2026-03-11 9:18 ` [Intel-wired-lan] " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-3-bd63b656022d@avm.de>
2026-03-10 18:13 ` [PATCH 03/61] ceph: " Viacheslav Dubeyko
2026-03-11 8:16 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-10 18:40 ` [PATCH 00/61] treewide: Use IS_ERR_OR_NULL over manual NULL check - refactor Kuan-Wei Chiu
[not found] ` <20260312125730.GI1469476@ziepe.ca>
2026-03-12 15:32 ` James Bottomley
2026-03-11 0:09 ` Russell King (Oracle)
[not found] ` <20260310-b4-is_err_or_null-v1-38-bd63b656022d@avm.de>
2026-03-10 15:07 ` [EXTERNAL] [PATCH 38/61] net: Prefer IS_ERR_OR_NULL over manual NULL check Elad Nachman
2026-03-11 0:16 ` Russell King (Oracle)
2026-03-11 9:24 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-12 16:11 ` Przemek Kitszel
[not found] ` <20260310-b4-is_err_or_null-v1-56-bd63b656022d@avm.de>
2026-03-10 13:21 ` [PATCH 56/61] clk: " Brian Masney
2026-03-11 2:07 ` Chen-Yu Tsai
[not found] ` <20260310-b4-is_err_or_null-v1-8-bd63b656022d@avm.de>
2026-03-11 8:18 ` [Intel-wired-lan] [PATCH 08/61] fuse: " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-13-bd63b656022d@avm.de>
2026-03-11 8:19 ` [Intel-wired-lan] [PATCH 13/61] squashfs: " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-16-bd63b656022d@avm.de>
2026-03-11 9:16 ` [Intel-wired-lan] [PATCH 16/61] sched: " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-22-bd63b656022d@avm.de>
2026-03-11 9:19 ` [Intel-wired-lan] [PATCH 22/61] md: " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-25-bd63b656022d@avm.de>
2026-03-10 13:55 ` [PATCH 25/61] net/bluetooth: " Bastien Nocera
2026-03-11 9:21 ` [Intel-wired-lan] " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-28-bd63b656022d@avm.de>
2026-03-11 9:22 ` [Intel-wired-lan] [PATCH 28/61] net/sched: " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-39-bd63b656022d@avm.de>
2026-03-11 9:24 ` [Intel-wired-lan] [PATCH 39/61] irqchip: " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-49-bd63b656022d@avm.de>
2026-03-11 9:25 ` [Intel-wired-lan] [PATCH 49/61] media: " Loktionov, Aleksandr
2026-03-11 23:03 ` Kieran Bingham
[not found] ` <20260310-b4-is_err_or_null-v1-54-bd63b656022d@avm.de>
2026-03-11 9:26 ` [Intel-wired-lan] [PATCH 54/61] aoe: " Loktionov, Aleksandr
[not found] ` <20260310-b4-is_err_or_null-v1-41-bd63b656022d@avm.de>
2026-03-11 9:32 ` [PATCH 41/61] pinctrl: " Linus Walleij
[not found] ` <20260310-b4-is_err_or_null-v1-36-bd63b656022d@avm.de>
2026-03-11 13:15 ` [PATCH 36/61] arch/sh: " Geert Uytterhoeven
[not found] ` <20260310-b4-is_err_or_null-v1-48-bd63b656022d@avm.de>
2026-03-12 19:33 ` [PATCH 48/61] mtd: " Richard Weinberger
[not found] ` <20260310-b4-is_err_or_null-v1-2-bd63b656022d@avm.de>
2026-03-13 19:22 ` [PATCH 02/61] btrfs: " David Sterba
[not found] ` <20260310-b4-is_err_or_null-v1-50-bd63b656022d@avm.de>
2026-03-11 9:26 ` [Intel-wired-lan] [PATCH 50/61] iommu: " Loktionov, Aleksandr
2026-03-16 13:30 ` Robin Murphy
[not found] ` <20260310-b4-is_err_or_null-v1-46-bd63b656022d@avm.de>
2026-03-10 12:53 ` [PATCH 46/61] vfio: " Pranjal Shrivastava
2026-03-11 9:25 ` [Intel-wired-lan] " Loktionov, Aleksandr
2026-03-16 22:10 ` Alex Williamson
[not found] ` <20260310-b4-is_err_or_null-v1-12-bd63b656022d@avm.de>
2026-03-11 8:19 ` [Intel-wired-lan] [PATCH 12/61] quota: " Loktionov, Aleksandr
2026-03-19 14:13 ` Jan Kara
2026-04-09 18:16 ` [PATCH 00/61] treewide: Use IS_ERR_OR_NULL over manual NULL check - refactor Al Viro
[not found] ` <20260310-b4-is_err_or_null-v1-55-bd63b656022d@avm.de>
2026-04-16 12:24 ` [PATCH 55/61] interconnect: Prefer IS_ERR_OR_NULL over manual NULL check Krzysztof Kozlowski
[not found] ` <20260310-b4-is_err_or_null-v1-1-bd63b656022d@avm.de>
2026-03-10 15:41 ` [PATCH 01/61] Coccinelle: " Markus Elfring
2026-03-11 15:12 ` Markus Elfring
2026-04-16 12:30 ` Krzysztof Kozlowski [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1fba96bd-124d-431d-8de8-78688c248600@kernel.org \
--to=krzk@kernel.org \
--cc=Julia.Lawall@inria.fr \
--cc=amd-gfx@lists.freedesktop.org \
--cc=apparmor@lists.ubuntu.com \
--cc=bpf@vger.kernel.org \
--cc=ceph-devel@vger.kernel.org \
--cc=cocci@inria.fr \
--cc=dm-devel@lists.linux.dev \
--cc=dri-devel@lists.freedesktop.org \
--cc=gfs2@lists.linux.dev \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=iommu@lists.linux.dev \
--cc=kvm@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-erofs@lists.ozlabs.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-modules@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-phy@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-sctp@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nicolas.palix@imag.fr \
--cc=ntfs3@lists.linux.dev \
--cc=phahn-oss@avm.de \
--cc=samba-technical@lists.samba.org \
--cc=sched-ext@lists.linux.dev \
--cc=target-devel@vger.kernel.org \
--cc=tipc-discussion@lists.sourceforge.net \
--cc=v9fs@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox