Re: [PATCH 6/7] fs/sysfs/group: make attribute_group pointers const

From: Joe Perches
Date: Tue Oct 10 2023 - 02:48:57 EST


On Mon, 2023-10-09 at 22:05 +0200, Max Kellermann wrote:
> On Mon, Oct 9, 2023 at 7:24 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> > Also, I don't know why checkpatch is happy with all the
> >
> > const struct attribute_group *const*groups;
> >
> > instead of
> >
> > const struct attribute_group *const *groups;
>
> I found out that checkpatch has no check for this at all; it does
> complain about such lines, but only for local variables. But that
> warning is actually a bug, because this is a check for unary
> operators: it thinks the asterisk is a dereference operator, not a
> pointer declaration, and complains that the unary operator must be
> preceded by a space. Thus warnings on local variable are only correct
> by coincidence, not by design.
>
> Inside structs or parameters (where my coding style violations can be
> found), it's a different context and thus checkpatch doesn't apply the
> rules for unary operators.

My opinion is that const use in the kernel should almost
always have whitespace before and after it except when
preceded by a open parenthesis or a newline.

$ git grep -wh const -- '*.[ch]' | \
grep -oP "[ \*\(]?const[ \*]?" | \
sort | uniq -c | sort -rn
222438 const
83386 const
51667 (const
2766 *const
834 const
442 const
343 const*
88 *const
37 (const
4 *const*