From: Joe Perches <joe@perches.com>
To: Angus Gardner <angusg778@gmail.com>, linux-kernel@vger.kernel.org
Cc: apw@canonical.com, dwaipayanray1@gmail.com, lukas.bulwahn@gmail.com
Subject: Re: [PATCH] checkpatch: fix false positives for IIO_DEV_ATTR permission checks
Date: Sat, 02 May 2026 21:56:49 -0700 [thread overview]
Message-ID: <ef6555d6bd81019347a8ea92f2fbfc7e7543b178.camel@perches.com> (raw)
In-Reply-To: <20260503041120.528859-1-angusg778@gmail.com>
On Sun, 2026-05-03 at 14:11 +1000, Angus Gardner wrote:
> ```
> The IIO_DEV_ATTR_[A-Z_]+ entry in @mode_permission_funcs used argument
> position 1 for all IIO_DEV_ATTR_* macros, but this is incorrect for
> several variants that take an extra numeric argument before the mode:
>
> IIO_DEV_ATTR_FREQ(channel, num, mode, ...) - mode at position 3
> IIO_DEV_ATTR_PHASE(channel, num, mode, ...) - mode at position 3
> IIO_DEV_ATTR_OUTY_ENABLE(channel, out, mode, ..) - mode at position 3
>
> With position 1, checkpatch checked the channel argument (always 0)
> or the numeric _num/_output argument (0, 1, 2, 3) instead of the actual
> permission, producing spurious NON_OCTAL_PERMISSIONS errors.
>
> IIO_DEV_ATTR_OUT_WAVETYPE has no permission argument at all (it is
> hardcoded as 0200 inside the macro), so it should be excluded from
> permission checking entirely.
>
> Fix by splitting the single entry into two: one matching the three-
> argument variants at position 3, using a negative lookahead to prevent
> overlap with the second entry which matches the remaining IIO_DEV_ATTR_*
> macros (including OUT_WAVETYPE exclusion) at the correct position 2.
>
> Signed-off-by: Angus Gardner <[angusg778@gmail.com](mailto:angusg778@gmail.com)>
> ---
> scripts/checkpatch.pl | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 0492d6afc..fa2af8527 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -840,7 +840,8 @@ our @mode_permission_funcs = (
> ["debugfs_create_(?:file|u8|u16|u32|u64|x8|x16|x32|x64|size_t|atomic_t|bool|blob|regset32|u32_array)", 2],
> ["proc_create(?:_data|)", 2],
> ["(?:CLASS|DEVICE|SENSOR|SENSOR_DEVICE|IIO_DEVICE)_ATTR", 2],
> - ["IIO_DEV_ATTR_[A-Z_]+", 1],
> + ["IIO_DEV_ATTR_(?:FREQ|PHASE|OUTY_ENABLE)[A-Z_]*", 3],
This is not correct.
IIO_DEV_ATTR_FREQSYMBOL and IIO_DEV_ATTR_PHASESYMBOL use permissions
at parameter 2
Better would be
["IIO_DEV_ATTR_(?:FREQ|PHASE|OUTY_ENABLE)", 3],
as the trailing [A-Z_]* is unnecessary.
But it's probably better to remove IIO_DEV_ATTR line altogether
as it's mostly not used except in staging.
$ git grep IIO_DEV_ATTR_ | cut -f1,2 -d/ | uniq -c
20 drivers/iio
31 drivers/staging
8 include/linux
1 scripts/checkpatch.pl: ["IIO_DEV_ATTR_[A-Z_]+", 1],
next prev parent reply other threads:[~2026-05-03 4:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-03 4:11 [PATCH] checkpatch: fix false positives for IIO_DEV_ATTR permission checks Angus Gardner
2026-05-03 4:56 ` Joe Perches [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-05-04 9:23 Angus Gardner
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=ef6555d6bd81019347a8ea92f2fbfc7e7543b178.camel@perches.com \
--to=joe@perches.com \
--cc=angusg778@gmail.com \
--cc=apw@canonical.com \
--cc=dwaipayanray1@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas.bulwahn@gmail.com \
/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