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*