On 05/17/2011 10:47 PM, John Stultz wrote: > Now that accessing current->comm needs to be protected, > avoid new current->comm or other task->comm usage by adding > a warning to checkpatch.pl. > > Fair warning: I know zero perl, so this was written in the > style of "monkey see, monkey do". It does appear to work > in my testing though. > > Thanks to Jiri Slaby, Michal Nazarewicz and Joe Perches > for help improving the regex! > > Close review and feedback would be appreciated. > > CC: Joe Perches <joe@xxxxxxxxxxx> > CC: Michal Nazarewicz <mina86@xxxxxxxxxx> > CC: Andy Whitcroft <apw@xxxxxxxxxxxxx> > CC: Jiri Slaby <jirislaby@xxxxxxxxx> > CC: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> > CC: David Rientjes <rientjes@xxxxxxxxxx> > CC: Dave Hansen <dave@xxxxxxxxxxxxxxxxxx> > CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > CC: linux-mm@xxxxxxxxx > Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx> > --- > scripts/checkpatch.pl | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index d867081..a67ea69 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -2868,6 +2868,13 @@ sub process { > WARN("usage of NR_CPUS is often wrong - consider using cpu_possible(), num_possible_cpus(), for_each_possible_cpu(), etc\n" . $herecurr); > } > > +# check for current->comm usage > + our $common_comm_vars = qr{(?x: > + current|tsk|p|task|curr|chip|t|object|me Hrm, chip->comm looks like a total bullshit. object->comm refers to kmemleak object, so this would trigger false alarms too. > + )}; > + if ($line =~ /\b($common_comm_vars)\s*->\s*comm\b/) { > + WARN("comm access needs to be protected. Use get_task_comm, or printk's \%ptc formatting.\n" . $herecurr); > + } > # check for %L{u,d,i} in strings > my $string; > while ($line =~ /(?:^|")([X\t]*)(?:"|$)/g) { thanks, -- js -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>