Handle space after for_each_* macros gracefully in checkpatch.pl
Anyone else seeing the irony of checkpatch.pl recommending to
use for_each_cpu_mask, but then not actually parsing it
correctly.
When you write
for_each_cpu_mask (...) {
it would complain about the space between mask and the open bracket
because it thinks it's a normal function call.
Fix this in a generic way. In theory someone could construct
a normal function that starts with for_each_* and it would
not warn, but I think that would be uncommon. The alternative
of listing all macros was tried first, but turned out to
be unwieldly.
I think I covered most of the common ones available, the
only exceptions are a few oddballs with leading prefix
like pnp_for_each* or zorro_for_each.
Signed-off-by: Andi Kleen <[email protected]>
Index: linux-2.6.27-misc/scripts/checkpatch.pl
===================================================================
--- linux-2.6.27-misc.orig/scripts/checkpatch.pl
+++ linux-2.6.27-misc/scripts/checkpatch.pl
@@ -1513,6 +1513,7 @@ sub process {
if|for|while|switch|return|case|
volatile|__volatile__|
__attribute__|format|__extension__|
+ ([ph]?list_)?for_each_[a-z_]+|
asm|__asm__)$/x)
{
On Fri, Oct 24, 2008 at 01:50:10PM +0200, Andi Kleen wrote:
> Handle space after for_each_* macros gracefully in checkpatch.pl
>
> Anyone else seeing the irony of checkpatch.pl recommending to
> use for_each_cpu_mask, but then not actually parsing it
> correctly.
>
> When you write
>
> for_each_cpu_mask (...) {
>
> it would complain about the space between mask and the open bracket
> because it thinks it's a normal function call.
>
> Fix this in a generic way. In theory someone could construct
> a normal function that starts with for_each_* and it would
> not warn, but I think that would be uncommon. The alternative
> of listing all macros was tried first, but turned out to
> be unwieldly.
>
> I think I covered most of the common ones available, the
> only exceptions are a few oddballs with leading prefix
> like pnp_for_each* or zorro_for_each.
I am happy with this conceptually. However when this was suggested
before there was a concensus that that it was not obvious whether this
was meant to be written as a function or a control and nothing was done.
So if people are with you on this, I am happy.
-apw