On Mon, 6 May 2013, strnape1@xxxxxxxxxxx wrote: > Hi, > > I would love to, but to be honest Im a bit confused about the mailing lists - > which one is the main Linux kernel mailing list? > http://vger.kernel.org/vger-lists.html lists a lot of linux related ones and I > also cant find any email for Michal Marek (only the mmarek@xxxxxxx version). Michal Marek <mmarek@xxxxxxx> But I had another proposition for improving the semantic patch. I will send it this evening. julia > The Coccinelle list is probably cocci(at)systeme.lip6.fr, so at least that I > did find. > Would appreciate any further info. > > With regards, Petr > Quoting Nicolas Palix <nicolas.palix@xxxxxxx>: > > > Hi, > > > > Could you add the Coccinelle mailing list, the main Linux kernel mailing > > list > > and Michal Marek in copy of your resubmission? So Julia will only have > > to Ack your > > patch. > > > > BTW thanks for your welcome contribution. > > > > Regards, > > > > On Thu, May 2, 2013 at 2:57 AM, Julia Lawall <julia.lawall@xxxxxxx> wrote: > > > On Thu, 2 May 2013, strnape1@xxxxxxxxxxx wrote: > > > > > > > Created coccinelle script for reporting missing pci_free_consistent() > > > > calls. > > > > > > > > Signed-off-by: Petr Strnad <strnape1@xxxxxxxxxxx> > > > > --- > > > > diff --git a/scripts/coccinelle/free/pci_free_consistent.cocci > > > > b/scripts/coccinelle/free/pci_free_consistent.cocci > > > > new file mode 100644 > > > > index 0000000..9d9a56f > > > > --- /dev/null > > > > +++ b/scripts/coccinelle/free/pci_free_consistent.cocci > > > > @@ -0,0 +1,44 @@ > > > > +/// Find missing pci_free_consistent for every pci_alloc_consistent. > > > > +/// > > > > +// Confidence: Moderate > > > > +// Copyright: (C) 2013 Petr Strnad. GPLv2. > > > > +// URL: http://coccinelle.lip6.fr/ > > > > +// Keywords: pci_free_consistent, pci_alloc_consistent > > > > +// Options: --no-includes --include-headers > > > > + > > > > +virtual report > > > > + > > > > +@search@ > > > > +local idexpression id; > > > > +expression x,y,z; > > > > +position p1,p2; > > > > +@@ > > > > + > > > > +id = pci_alloc_consistent@p1(x,y,&z) > > > > +... when != pci_free_consistent(x,y,id,z) > > > > + when forall > > > > +( > > > > +if (id == NULL) { ... return ...; } > > > > +| > > > > +if (id == NULL || (unsigned long)id & 0xFF) { ... return ...; } > > > > > > The above two lines can be combined into if (id == NULL || ....) { ... > > > return ...; } > > > > > > > +| > > > > +if (id == NULL) return ...; > > > > > > This case shouldn't be necessary. It should automatically consider { ... > > > return ...; } as also matching return ...; (isomorphism). > > > > > > > +| > > > > +if (id) { ... return 0; } > > > > +| > > > > +if (id) { ... } else { ... } return 0; > > > > > > Here, I would put S1 and S2, declared as statement metavariables, rather > > > than { ... } > > > > > > julia > > > > > > > +| > > > > +return 0; > > > > +| > > > > +return id; > > > > +| > > > > +*return@p2 ...; > > > > +) > > > > + > > > > +@script:python depends on report@ > > > > +p1 << search.p1; > > > > +p2 << search.p2; > > > > +@@ > > > > + > > > > +msg = "ERROR: missing pci_free_consistent; pci_alloc_consistent on line > > > > %s > > > > and return without freeing on line %s" % (p1[0].line,p2[0].line) > > > > +coccilib.report.print_report(p2[0],msg) > > > > > > > > -- > > > > To unsubscribe from this list: send the line "unsubscribe > > > > kernel-janitors" in > > > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > -- > > > To unsubscribe from this list: send the line "unsubscribe kernel-janitors" > > > in > > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > > > > > -- > > Nicolas Palix > > > -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html