Merge branch 'for-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux
Pull coccinelle updates from Julia Lawall: "Remove some semantic patches and remove a maintainer. Qing Wang <wangqing@vivo.com> reported that fen.cocci mostly finds false positives, so it is dropped. scripts/coccinelle/iterators/for_each_child.cocci also subsumes it, in a more correct way. Matthew Wilcox <willy@infradead.org> reported that bugon.cocci mostly gives false positives. It is an old script and was designed to be inaccurate to maximally cover problems, but most of what it is useful for has been done already. Gilles Muller passed away and is thus dropped from the maintainers list" * 'for-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux: drop fen.cocci scripts/coccinelle: drop bugon.cocci MAINTAINERS: remove Gilles Muller
This commit is contained in:
commit
b70b878c32
|
@ -4745,7 +4745,6 @@ F: drivers/media/pci/cobalt/
|
|||
|
||||
COCCINELLE/Semantic Patches (SmPL)
|
||||
M: Julia Lawall <Julia.Lawall@inria.fr>
|
||||
M: Gilles Muller <Gilles.Muller@inria.fr>
|
||||
M: Nicolas Palix <nicolas.palix@imag.fr>
|
||||
L: cocci@inria.fr (moderated for non-subscribers)
|
||||
S: Supported
|
||||
|
|
|
@ -1,124 +0,0 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/// These iterators only exit normally when the loop cursor is NULL, so there
|
||||
/// is no point to call of_node_put on the final value.
|
||||
///
|
||||
// Confidence: High
|
||||
// Copyright: (C) 2010-2012 Nicolas Palix.
|
||||
// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6.
|
||||
// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6.
|
||||
// URL: http://coccinelle.lip6.fr/
|
||||
// Comments:
|
||||
// Options: --no-includes --include-headers
|
||||
|
||||
virtual patch
|
||||
virtual context
|
||||
virtual org
|
||||
virtual report
|
||||
|
||||
@depends on patch@
|
||||
iterator name for_each_node_by_name;
|
||||
expression np,E;
|
||||
identifier l;
|
||||
@@
|
||||
|
||||
for_each_node_by_name(np,...) {
|
||||
... when != break;
|
||||
when != goto l;
|
||||
}
|
||||
... when != np = E
|
||||
- of_node_put(np);
|
||||
|
||||
@depends on patch@
|
||||
iterator name for_each_node_by_type;
|
||||
expression np,E;
|
||||
identifier l;
|
||||
@@
|
||||
|
||||
for_each_node_by_type(np,...) {
|
||||
... when != break;
|
||||
when != goto l;
|
||||
}
|
||||
... when != np = E
|
||||
- of_node_put(np);
|
||||
|
||||
@depends on patch@
|
||||
iterator name for_each_compatible_node;
|
||||
expression np,E;
|
||||
identifier l;
|
||||
@@
|
||||
|
||||
for_each_compatible_node(np,...) {
|
||||
... when != break;
|
||||
when != goto l;
|
||||
}
|
||||
... when != np = E
|
||||
- of_node_put(np);
|
||||
|
||||
@depends on patch@
|
||||
iterator name for_each_matching_node;
|
||||
expression np,E;
|
||||
identifier l;
|
||||
@@
|
||||
|
||||
for_each_matching_node(np,...) {
|
||||
... when != break;
|
||||
when != goto l;
|
||||
}
|
||||
... when != np = E
|
||||
- of_node_put(np);
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
@r depends on !patch forall@
|
||||
//iterator name for_each_node_by_name;
|
||||
//iterator name for_each_node_by_type;
|
||||
//iterator name for_each_compatible_node;
|
||||
//iterator name for_each_matching_node;
|
||||
expression np,E;
|
||||
identifier l;
|
||||
position p1,p2;
|
||||
@@
|
||||
|
||||
(
|
||||
*for_each_node_by_name@p1(np,...)
|
||||
{
|
||||
... when != break;
|
||||
when != goto l;
|
||||
}
|
||||
|
|
||||
*for_each_node_by_type@p1(np,...)
|
||||
{
|
||||
... when != break;
|
||||
when != goto l;
|
||||
}
|
||||
|
|
||||
*for_each_compatible_node@p1(np,...)
|
||||
{
|
||||
... when != break;
|
||||
when != goto l;
|
||||
}
|
||||
|
|
||||
*for_each_matching_node@p1(np,...)
|
||||
{
|
||||
... when != break;
|
||||
when != goto l;
|
||||
}
|
||||
)
|
||||
... when != np = E
|
||||
* of_node_put@p2(np);
|
||||
|
||||
@script:python depends on org@
|
||||
p1 << r.p1;
|
||||
p2 << r.p2;
|
||||
@@
|
||||
|
||||
cocci.print_main("unneeded of_node_put",p2)
|
||||
cocci.print_secs("iterator",p1)
|
||||
|
||||
@script:python depends on report@
|
||||
p1 << r.p1;
|
||||
p2 << r.p2;
|
||||
@@
|
||||
|
||||
msg = "ERROR: of_node_put not needed after iterator on line %s" % (p1[0].line)
|
||||
coccilib.report.print_report(p2[0], msg)
|
|
@ -1,63 +0,0 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/// Use BUG_ON instead of a if condition followed by BUG.
|
||||
///
|
||||
//# This makes an effort to find cases where BUG() follows an if
|
||||
//# condition on an expression and replaces the if condition and BUG()
|
||||
//# with a BUG_ON having the conditional expression of the if statement
|
||||
//# as argument.
|
||||
//
|
||||
// Confidence: High
|
||||
// Copyright: (C) 2014 Himangi Saraogi.
|
||||
// Comments:
|
||||
// Options: --no-includes --include-headers
|
||||
|
||||
virtual patch
|
||||
virtual context
|
||||
virtual org
|
||||
virtual report
|
||||
|
||||
//----------------------------------------------------------
|
||||
// For context mode
|
||||
//----------------------------------------------------------
|
||||
|
||||
@depends on context@
|
||||
expression e;
|
||||
@@
|
||||
|
||||
*if (e) BUG();
|
||||
|
||||
//----------------------------------------------------------
|
||||
// For patch mode
|
||||
//----------------------------------------------------------
|
||||
|
||||
@depends on patch@
|
||||
expression e;
|
||||
@@
|
||||
|
||||
-if (e) BUG();
|
||||
+BUG_ON(e);
|
||||
|
||||
//----------------------------------------------------------
|
||||
// For org and report mode
|
||||
//----------------------------------------------------------
|
||||
|
||||
@r depends on (org || report)@
|
||||
expression e;
|
||||
position p;
|
||||
@@
|
||||
|
||||
if (e) BUG@p ();
|
||||
|
||||
@script:python depends on org@
|
||||
p << r.p;
|
||||
@@
|
||||
|
||||
coccilib.org.print_todo(p[0], "WARNING use BUG_ON")
|
||||
|
||||
@script:python depends on report@
|
||||
p << r.p;
|
||||
@@
|
||||
|
||||
msg="WARNING: Use BUG_ON instead of if condition followed by BUG.\nPlease make sure the condition has no side effects (see conditional BUG_ON definition in include/asm-generic/bug.h)"
|
||||
coccilib.report.print_report(p[0], msg)
|
||||
|
Loading…
Reference in New Issue