* [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications [not found] <CAK7LNAT=7E0HFd+MM92VcNdA1i6AME6qyFA9sN-2dabibxkiJg@mail.gmail.com> @ 2018-07-03 7:30 ` SF Markus Elfring 2018-07-03 7:35 ` [PATCH 1/6] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from two SmPL constrai SF Markus Elfring ` (6 more replies) 0 siblings, 7 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-03 7:30 UTC (permalink / raw) To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada, kernel-janitors Cc: LKML, Coccinelle From: Markus Elfring <elfring@users.sourceforge.net> Date: Tue, 3 Jul 2018 09:15:26 +0200 This source code search pattern was programmed in the way that some implementation details could be improved further. I suggest to avoid unnecessary code repetition also in this script for the semantic patch language. Markus Elfring (6): Omit placeholder specifications from two SmPL constraints Optimise a disjunction in the first SmPL rule Use type “expression” for another metavariable Replace disjunction by a constraint in two SmPL rules Use nested disjunctions in two SmPL rules Use format strings directly in SmPL rules .../coccinelle/api/atomic_as_refcounter.cocci | 104 +++++++----------- 1 file changed, 39 insertions(+), 65 deletions(-) -- 2.18.0 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/6] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from two SmPL constrai 2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring @ 2018-07-03 7:35 ` SF Markus Elfring 2018-07-03 7:37 ` [PATCH 2/6] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule SF Markus Elfring ` (5 subsequent siblings) 6 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-03 7:35 UTC (permalink / raw) To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada, kernel-janitors Cc: LKML, Coccinelle From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 2 Jul 2018 16:33:46 +0200 A string was enclosed by placeholder specifications for regular expressions as constraints for metavariables in a script for the semantic patch language. The desired search functionality can be achieved also without the notation “.*”. Thus delete it. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- scripts/coccinelle/api/atomic_as_refcounter.cocci | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 988120e0fd67..94373a35744e 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -12,7 +12,7 @@ virtual report @r1 exists@ identifier a, x; position p1, p2; -identifier fname =~ ".*free.*"; +identifier fname =~ "free"; identifier fname2 =~ ".*destroy.*"; identifier fname3 =~ ".*del.*"; identifier fname4 =~ ".*queue_work.*"; @@ -60,8 +60,7 @@ coccilib.report.print_report(p1[0], msg % (p2[0].line)) @r4 exists@ identifier a, x, y; position p1, p2; -identifier fname =~ ".*free.*"; - +identifier fname =~ "free"; @@ ( -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 2/6] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule 2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring 2018-07-03 7:35 ` [PATCH 1/6] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from two SmPL constrai SF Markus Elfring @ 2018-07-03 7:37 ` SF Markus Elfring 2018-07-03 7:40 ` [PATCH 3/6] Coccinelle: atomic_as_refcounter: Use typ =?UTF-8?Q?e_=e2=80=9cexpressio SF Markus Elfring ` (4 subsequent siblings) 6 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-03 7:37 UTC (permalink / raw) To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada, kernel-janitors Cc: LKML, Coccinelle From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 2 Jul 2018 17:14:01 +0200 The names “fname2” till “fname6” do not care for different function parameters in the disjunction at the end of a rule in a script for the semantic patch language. Thus reduce this disjunction by using a regular expression with an alternation for an optimised constraint. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- scripts/coccinelle/api/atomic_as_refcounter.cocci | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 94373a35744e..5571eea04c7b 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -13,12 +13,7 @@ virtual report identifier a, x; position p1, p2; identifier fname =~ "free"; -identifier fname2 =~ ".*destroy.*"; -identifier fname3 =~ ".*del.*"; -identifier fname4 =~ ".*queue_work.*"; -identifier fname5 =~ ".*schedule_work.*"; -identifier fname6 =~ ".*call_rcu.*"; - +identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; @@ ( @@ -39,14 +34,6 @@ identifier fname6 =~ ".*call_rcu.*"; fname@p2(a, ...); | fname2@p2(...); -| - fname3@p2(...); -| - fname4@p2(...); -| - fname5@p2(...); -| - fname6@p2(...); ) -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 3/6] Coccinelle: atomic_as_refcounter: Use typ =?UTF-8?Q?e_=e2=80=9cexpressio 2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring 2018-07-03 7:35 ` [PATCH 1/6] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from two SmPL constrai SF Markus Elfring 2018-07-03 7:37 ` [PATCH 2/6] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule SF Markus Elfring @ 2018-07-03 7:40 ` SF Markus Elfring 2018-07-03 7:42 ` [PATCH 4/6] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules SF Markus Elfring ` (3 subsequent siblings) 6 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-03 7:40 UTC (permalink / raw) To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada, kernel-janitors Cc: LKML, Coccinelle From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 2 Jul 2018 17:55:27 +0200 The metavariable “a” is enclosed by parentheses in three rules of a script for the semantic patch language. Replace its type by “expression” so that the corresponding source code search becomes more powerful. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- scripts/coccinelle/api/atomic_as_refcounter.cocci | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 5571eea04c7b..57af2db9463e 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -10,7 +10,8 @@ virtual report @r1 exists@ -identifier a, x; +expression a; +identifier x; position p1, p2; identifier fname =~ "free"; identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; @@ -45,7 +46,8 @@ msg = "atomic_dec_and_test variation before object free at line %s." coccilib.report.print_report(p1[0], msg % (p2[0].line)) @r4 exists@ -identifier a, x, y; +expression a; +identifier x, y; position p1, p2; identifier fname =~ "free"; @@ @@ -77,7 +79,8 @@ msg = "atomic_dec_and_test variation before object free at line %s." coccilib.report.print_report(p1[0], msg % (p2[0].line)) @r2 exists@ -identifier a, x; +expression a; +identifier x; position p1; @@ -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 4/6] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules 2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring ` (2 preceding siblings ...) 2018-07-03 7:40 ` [PATCH 3/6] Coccinelle: atomic_as_refcounter: Use typ =?UTF-8?Q?e_=e2=80=9cexpressio SF Markus Elfring @ 2018-07-03 7:42 ` SF Markus Elfring 2018-07-03 7:45 ` [PATCH 5/6] Coccinelle: atomic_as_refcounter: Use nested disjunctions " SF Markus Elfring ` (2 subsequent siblings) 6 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-03 7:42 UTC (permalink / raw) To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada, kernel-janitors Cc: LKML, Coccinelle From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 2 Jul 2018 18:45:15 +0200 Three function names were specified for a search of function calls by the means of a disjunction in two rules of a script for the semantic patch language. Use a regular expression as a constraint for this source code search pattern instead so that duplication of SmPL code can be avoided. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- .../coccinelle/api/atomic_as_refcounter.cocci | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 57af2db9463e..372ae99591fd 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -80,17 +80,11 @@ coccilib.report.print_report(p1[0], msg % (p2[0].line)) @r2 exists@ expression a; -identifier x; +identifier F =~ "^atomic(?:64|_long)?_add_unless$", x; position p1; @@ -( -atomic_add_unless(&(a)->x,-1,1)@p1 -| -atomic_long_add_unless(&(a)->x,-1,1)@p1 -| -atomic64_add_unless(&(a)->x,-1,1)@p1 -) + F(&(a)->x, -1, 1)@p1 @script:python depends on report@ p1 << r2.p1; @@ -99,17 +93,12 @@ msg = "atomic_add_unless" coccilib.report.print_report(p1[0], msg) @r3 exists@ -identifier x; +expression E; +identifier F =~ "^atomic(?:64|_long)?_add_return$"; position p1; @@ -( -x = atomic_add_return@p1(-1, ...); -| -x = atomic_long_add_return@p1(-1, ...); -| -x = atomic64_add_return@p1(-1, ...); -) + E = F@p1(-1, ...); @script:python depends on report@ p1 << r3.p1; -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 5/6] Coccinelle: atomic_as_refcounter: Use nested disjunctions in two SmPL rules 2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring ` (3 preceding siblings ...) 2018-07-03 7:42 ` [PATCH 4/6] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules SF Markus Elfring @ 2018-07-03 7:45 ` SF Markus Elfring 2018-07-03 7:48 ` [PATCH 6/6] Coccinelle: atomic_as_refcounter: Use format strings directly in " SF Markus Elfring 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring 6 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-03 7:45 UTC (permalink / raw) To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada, kernel-janitors Cc: LKML, Coccinelle From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 2 Jul 2018 19:21:28 +0200 Six function names were specified for a search of function calls by the means of a disjunction in two rules of a script for the semantic patch language. Refactor them into two groups so that the SmPL code repetition could be reduced a bit. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- .../coccinelle/api/atomic_as_refcounter.cocci | 36 +++++++++---------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 372ae99591fd..63cbe866c99f 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -18,17 +18,15 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; @@ ( - atomic_dec_and_test@p1(&(a)->x) +(atomic_dec_and_test@p1 +|atomic_long_dec_and_test@p1 +|atomic64_dec_and_test@p1 +|local_dec_and_test@p1 +) (&(a)->x) | - atomic_dec_and_lock@p1(&(a)->x, ...) -| - atomic_long_dec_and_lock@p1(&(a)->x, ...) -| - atomic_long_dec_and_test@p1(&(a)->x) -| - atomic64_dec_and_test@p1(&(a)->x) -| - local_dec_and_test@p1(&(a)->x) +(atomic_dec_and_lock@p1 +|atomic_long_dec_and_lock@p1 +) (&(a)->x, ...) ) ... ( @@ -53,17 +51,15 @@ identifier fname =~ "free"; @@ ( - atomic_dec_and_test@p1(&(a)->x) -| - atomic_dec_and_lock@p1(&(a)->x, ...) -| - atomic_long_dec_and_lock@p1(&(a)->x, ...) -| - atomic_long_dec_and_test@p1(&(a)->x) -| - atomic64_dec_and_test@p1(&(a)->x) +(atomic_dec_and_test@p1 +|atomic_long_dec_and_test@p1 +|atomic64_dec_and_test@p1 +|local_dec_and_test@p1 +) (&(a)->x) | - local_dec_and_test@p1(&(a)->x) +(atomic_dec_and_lock@p1 +|atomic_long_dec_and_lock@p1 +) (&(a)->x, ...) ) ... y=a -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 6/6] Coccinelle: atomic_as_refcounter: Use format strings directly in SmPL rules 2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring ` (4 preceding siblings ...) 2018-07-03 7:45 ` [PATCH 5/6] Coccinelle: atomic_as_refcounter: Use nested disjunctions " SF Markus Elfring @ 2018-07-03 7:48 ` SF Markus Elfring 2018-08-01 12:30 ` [PATCH] Coccinelle: atomic_as_refcounter: Merge two " SF Markus Elfring 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring 6 siblings, 1 reply; 17+ messages in thread From: SF Markus Elfring @ 2018-07-03 7:48 UTC (permalink / raw) To: Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada, kernel-janitors Cc: LKML, Coccinelle From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 2 Jul 2018 19:46:45 +0200 Format strings were always assigned to the Python variable “msg” before they were used in four rules of a script for the semantic patch language. Delete these extra variables so that the specified string objects are directly used for the desired data output. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- .../coccinelle/api/atomic_as_refcounter.cocci | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 63cbe866c99f..1e2278ff3261 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -40,8 +40,9 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; p1 << r1.p1; p2 << r1.p2; @@ -msg = "atomic_dec_and_test variation before object free at line %s." -coccilib.report.print_report(p1[0], msg % (p2[0].line)) +coccilib.report.print_report(p1[0], + "atomic_dec_and_test variation before object free at line %s." + % (p2[0].line)) @r4 exists@ expression a; @@ -71,8 +72,9 @@ fname@p2(y, ...); p1 << r4.p1; p2 << r4.p2; @@ -msg = "atomic_dec_and_test variation before object free at line %s." -coccilib.report.print_report(p1[0], msg % (p2[0].line)) +coccilib.report.print_report(p1[0], + "atomic_dec_and_test variation before object free at line %s." + % (p2[0].line)) @r2 exists@ expression a; @@ -85,8 +87,7 @@ position p1; @script:python depends on report@ p1 << r2.p1; @@ -msg = "atomic_add_unless" -coccilib.report.print_report(p1[0], msg) +coccilib.report.print_report(p1[0], "atomic_add_unless") @r3 exists@ expression E; @@ -99,5 +100,4 @@ position p1; @script:python depends on report@ p1 << r3.p1; @@ -msg = "x = atomic_add_return(-1, ...)" -coccilib.report.print_report(p1[0], msg) +coccilib.report.print_report(p1[0], "x = atomic_add_return(-1, ...)") -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH] Coccinelle: atomic_as_refcounter: Merge two SmPL rules 2018-07-03 7:48 ` [PATCH 6/6] Coccinelle: atomic_as_refcounter: Use format strings directly in " SF Markus Elfring @ 2018-08-01 12:30 ` SF Markus Elfring 0 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-08-01 12:30 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Wed, 1 Aug 2018 14:16:01 +0200 Two rules of a script for the semantic patch language displayed the same message. Thus reduce duplicate SmPL code so that the desired data processing is achieved by another nested SmPL disjunction in a single SmPL rule. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- .../coccinelle/api/atomic_as_refcounter.cocci | 50 ++++--------------- 1 file changed, 10 insertions(+), 40 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 1e2278ff3261..292a029d5a51 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -11,12 +11,11 @@ virtual report @r1 exists@ expression a; -identifier x; position p1, p2; -identifier fname =~ "free"; -identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; +identifier x, y, + fname =~ "free", + fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; @@ - ( (atomic_dec_and_test@p1 |atomic_long_dec_and_test@p1 @@ -28,14 +27,17 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; |atomic_long_dec_and_lock@p1 ) (&(a)->x, ...) ) -... + ... ( - fname@p2(a, ...); +(fname@p2(a, ...) +|fname2@p2(...) +); | - fname2@p2(...); + y = a + ... + fname@p2(y, ...); ) - @script:python depends on report@ p1 << r1.p1; p2 << r1.p2; @@ -44,38 +46,6 @@ coccilib.report.print_report(p1[0], "atomic_dec_and_test variation before object free at line %s." % (p2[0].line)) -@r4 exists@ -expression a; -identifier x, y; -position p1, p2; -identifier fname =~ "free"; -@@ - -( -(atomic_dec_and_test@p1 -|atomic_long_dec_and_test@p1 -|atomic64_dec_and_test@p1 -|local_dec_and_test@p1 -) (&(a)->x) -| -(atomic_dec_and_lock@p1 -|atomic_long_dec_and_lock@p1 -) (&(a)->x, ...) -) -... -y=a -... -fname@p2(y, ...); - - -@script:python depends on report@ -p1 << r4.p1; -p2 << r4.p2; -@@ -coccilib.report.print_report(p1[0], - "atomic_dec_and_test variation before object free at line %s." - % (p2[0].line)) - @r2 exists@ expression a; identifier F =~ "^atomic(?:64|_long)?_add_unless$", x; -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications 2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring ` (5 preceding siblings ...) 2018-07-03 7:48 ` [PATCH 6/6] Coccinelle: atomic_as_refcounter: Use format strings directly in " SF Markus Elfring @ 2018-07-16 17:21 ` SF Markus Elfring 2018-07-16 17:24 ` [PATCH v2 1/8] Coccinelle: atomic_as_refcounter: Delete an unnecessary SmPL rule SF Markus Elfring ` (7 more replies) 6 siblings, 8 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-16 17:21 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 16 Jul 2018 19:15:26 +0200 This source code search pattern was programmed in the way that some implementation details could be improved further. I suggest to avoid unnecessary code repetition also in this script for the semantic patch language. Markus Elfring (8): Delete an unnecessary SmPL rule Omit placeholder specifications from a SmPL constraint Optimise a disjunction in the first SmPL rule Use type “expression” for another metavariable Replace disjunction by a constraint in two SmPL rules Use nested disjunctions in the first SmPL rule Use string literals directly in two SmPL rules Use format string directly in the first SmPL rule --- V2: Possible changes were recombined after the deletion of a questionable SmPL rule. .../coccinelle/api/atomic_as_refcounter.cocci | 108 ++++-------------- 1 file changed, 24 insertions(+), 84 deletions(-) -- 2.18.0 ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH v2 1/8] Coccinelle: atomic_as_refcounter: Delete an unnecessary SmPL rule 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring @ 2018-07-16 17:24 ` SF Markus Elfring 2018-07-16 17:26 ` [PATCH v2 2/8] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from a SmPL constra SF Markus Elfring ` (6 subsequent siblings) 7 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-16 17:24 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 16 Jul 2018 17:15:26 +0200 A search was specified in the rule “r4” for function calls which should be found by the rule “r1” already in a script for the semantic patch language. It is useless to repeat a source code search there just to determine that a variable assignment was performed also for an input parameter of such a function call (while the same message will be displayed so far). Thus delete an inappropriate search specification. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- .../coccinelle/api/atomic_as_refcounter.cocci | 33 ------------------- 1 file changed, 33 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 988120e0fd67..61fcaf5e45a3 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -57,39 +57,6 @@ p2 << r1.p2; msg = "atomic_dec_and_test variation before object free at line %s." coccilib.report.print_report(p1[0], msg % (p2[0].line)) -@r4 exists@ -identifier a, x, y; -position p1, p2; -identifier fname =~ ".*free.*"; - -@@ - -( - atomic_dec_and_test@p1(&(a)->x) -| - atomic_dec_and_lock@p1(&(a)->x, ...) -| - atomic_long_dec_and_lock@p1(&(a)->x, ...) -| - atomic_long_dec_and_test@p1(&(a)->x) -| - atomic64_dec_and_test@p1(&(a)->x) -| - local_dec_and_test@p1(&(a)->x) -) -... -y=a -... -fname@p2(y, ...); - - -@script:python depends on report@ -p1 << r4.p1; -p2 << r4.p2; -@@ -msg = "atomic_dec_and_test variation before object free at line %s." -coccilib.report.print_report(p1[0], msg % (p2[0].line)) - @r2 exists@ identifier a, x; position p1; -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 2/8] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from a SmPL constra 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring 2018-07-16 17:24 ` [PATCH v2 1/8] Coccinelle: atomic_as_refcounter: Delete an unnecessary SmPL rule SF Markus Elfring @ 2018-07-16 17:26 ` SF Markus Elfring 2018-07-16 17:28 ` [PATCH v2 3/8] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule SF Markus Elfring ` (5 subsequent siblings) 7 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-16 17:26 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 16 Jul 2018 17:34:56 +0200 A string was enclosed by placeholder specifications for regular expressions as constraints for metavariables in a script for the semantic patch language. The desired search functionality can be achieved also without the notation “.*”. Thus delete it at a specific place. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- scripts/coccinelle/api/atomic_as_refcounter.cocci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 61fcaf5e45a3..46d27b2b1dff 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -12,7 +12,7 @@ virtual report @r1 exists@ identifier a, x; position p1, p2; -identifier fname =~ ".*free.*"; +identifier fname =~ "free"; identifier fname2 =~ ".*destroy.*"; identifier fname3 =~ ".*del.*"; identifier fname4 =~ ".*queue_work.*"; -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 3/8] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring 2018-07-16 17:24 ` [PATCH v2 1/8] Coccinelle: atomic_as_refcounter: Delete an unnecessary SmPL rule SF Markus Elfring 2018-07-16 17:26 ` [PATCH v2 2/8] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from a SmPL constra SF Markus Elfring @ 2018-07-16 17:28 ` SF Markus Elfring 2018-07-16 17:30 ` [PATCH v2 4/8] Coccinelle: atomic_as_refcounter: Use =?UTF-8?Q?type_=e2=80=9cexpres SF Markus Elfring ` (4 subsequent siblings) 7 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-16 17:28 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 16 Jul 2018 17:43:49 +0200 The variables “fname2” till “fname6” do not care for different function parameters in the disjunction at the end of a rule in a script for the semantic patch language. Thus reduce this disjunction by using a regular expression with an alternation for an optimised constraint. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- scripts/coccinelle/api/atomic_as_refcounter.cocci | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 46d27b2b1dff..4da83ccfa6f6 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -13,12 +13,7 @@ virtual report identifier a, x; position p1, p2; identifier fname =~ "free"; -identifier fname2 =~ ".*destroy.*"; -identifier fname3 =~ ".*del.*"; -identifier fname4 =~ ".*queue_work.*"; -identifier fname5 =~ ".*schedule_work.*"; -identifier fname6 =~ ".*call_rcu.*"; - +identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; @@ ( @@ -39,14 +34,6 @@ identifier fname6 =~ ".*call_rcu.*"; fname@p2(a, ...); | fname2@p2(...); -| - fname3@p2(...); -| - fname4@p2(...); -| - fname5@p2(...); -| - fname6@p2(...); ) -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 4/8] Coccinelle: atomic_as_refcounter: Use =?UTF-8?Q?type_=e2=80=9cexpres 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring ` (2 preceding siblings ...) 2018-07-16 17:28 ` [PATCH v2 3/8] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule SF Markus Elfring @ 2018-07-16 17:30 ` SF Markus Elfring 2018-07-16 17:32 ` [PATCH v2 5/8] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rul SF Markus Elfring ` (3 subsequent siblings) 7 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-16 17:30 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 16 Jul 2018 18:00:54 +0200 The metavariable “a” is enclosed by parentheses in two rules of a script for the semantic patch language. Replace its type by “expression” so that the corresponding source code search becomes more powerful. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- scripts/coccinelle/api/atomic_as_refcounter.cocci | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 4da83ccfa6f6..62b0132d65fc 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -10,7 +10,8 @@ virtual report @r1 exists@ -identifier a, x; +expression a; +identifier x; position p1, p2; identifier fname =~ "free"; identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; @@ -45,7 +46,8 @@ msg = "atomic_dec_and_test variation before object free at line %s." coccilib.report.print_report(p1[0], msg % (p2[0].line)) @r2 exists@ -identifier a, x; +expression a; +identifier x; position p1; @@ -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 5/8] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rul 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring ` (3 preceding siblings ...) 2018-07-16 17:30 ` [PATCH v2 4/8] Coccinelle: atomic_as_refcounter: Use =?UTF-8?Q?type_=e2=80=9cexpres SF Markus Elfring @ 2018-07-16 17:32 ` SF Markus Elfring 2018-07-16 17:34 ` [PATCH v2 6/8] Coccinelle: atomic_as_refcounter: Use nested disjunctions in the first SmPL rule SF Markus Elfring ` (2 subsequent siblings) 7 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-16 17:32 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 16 Jul 2018 18:12:10 +0200 Three function names were specified for a search of function calls by the means of a disjunction in two rules of a script for the semantic patch language. Use a regular expression as a constraint for this source code search pattern instead so that duplication of SmPL code can be avoided. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- .../coccinelle/api/atomic_as_refcounter.cocci | 23 ++++--------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 62b0132d65fc..4484bea6c9d8 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -47,17 +47,10 @@ coccilib.report.print_report(p1[0], msg % (p2[0].line)) @r2 exists@ expression a; -identifier x; +identifier F =~ "^atomic(?:64|_long)?_add_unless$", x; position p1; @@ - -( -atomic_add_unless(&(a)->x,-1,1)@p1 -| -atomic_long_add_unless(&(a)->x,-1,1)@p1 -| -atomic64_add_unless(&(a)->x,-1,1)@p1 -) + F(&(a)->x, -1, 1)@p1 @script:python depends on report@ p1 << r2.p1; @@ -66,17 +59,11 @@ msg = "atomic_add_unless" coccilib.report.print_report(p1[0], msg) @r3 exists@ -identifier x; +expression E; +identifier F =~ "^atomic(?:64|_long)?_add_return$"; position p1; @@ - -( -x = atomic_add_return@p1(-1, ...); -| -x = atomic_long_add_return@p1(-1, ...); -| -x = atomic64_add_return@p1(-1, ...); -) + E = F@p1(-1, ...); @script:python depends on report@ p1 << r3.p1; -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 6/8] Coccinelle: atomic_as_refcounter: Use nested disjunctions in the first SmPL rule 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring ` (4 preceding siblings ...) 2018-07-16 17:32 ` [PATCH v2 5/8] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rul SF Markus Elfring @ 2018-07-16 17:34 ` SF Markus Elfring 2018-07-16 17:36 ` [PATCH v2 7/8] Coccinelle: atomic_as_refcounter: Use string literals directly in two SmPL rules SF Markus Elfring 2018-07-16 17:39 ` [PATCH v2 8/8] Coccinelle: atomic_as_refcounter: Use format string directly in the first SmPL rule SF Markus Elfring 7 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-16 17:34 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 16 Jul 2018 18:22:53 +0200 Six function names were specified for a search of function calls by the means of a disjunction in the rule of a script for the semantic patch language. Refactor them into two groups so that the SmPL code repetition could be reduced a bit. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- .../coccinelle/api/atomic_as_refcounter.cocci | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 4484bea6c9d8..7eae23dc9ea8 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -18,17 +18,15 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; @@ ( - atomic_dec_and_test@p1(&(a)->x) +(atomic_dec_and_test@p1 +|atomic_long_dec_and_test@p1 +|atomic64_dec_and_test@p1 +|local_dec_and_test@p1 +) (&(a)->x) | - atomic_dec_and_lock@p1(&(a)->x, ...) -| - atomic_long_dec_and_lock@p1(&(a)->x, ...) -| - atomic_long_dec_and_test@p1(&(a)->x) -| - atomic64_dec_and_test@p1(&(a)->x) -| - local_dec_and_test@p1(&(a)->x) +(atomic_dec_and_lock@p1 +|atomic_long_dec_and_lock@p1 +) (&(a)->x, ...) ) ... ( -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 7/8] Coccinelle: atomic_as_refcounter: Use string literals directly in two SmPL rules 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring ` (5 preceding siblings ...) 2018-07-16 17:34 ` [PATCH v2 6/8] Coccinelle: atomic_as_refcounter: Use nested disjunctions in the first SmPL rule SF Markus Elfring @ 2018-07-16 17:36 ` SF Markus Elfring 2018-07-16 17:39 ` [PATCH v2 8/8] Coccinelle: atomic_as_refcounter: Use format string directly in the first SmPL rule SF Markus Elfring 7 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-16 17:36 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 16 Jul 2018 18:36:41 +0200 String literals were always assigned to the Python variable “msg” before they were used in two rules of a script for the semantic patch language. Delete these extra variables so that the specified string objects are directly used for the desired data output. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- scripts/coccinelle/api/atomic_as_refcounter.cocci | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index 7eae23dc9ea8..c9b838941024 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -53,8 +53,7 @@ position p1; @script:python depends on report@ p1 << r2.p1; @@ -msg = "atomic_add_unless" -coccilib.report.print_report(p1[0], msg) +coccilib.report.print_report(p1[0], "atomic_add_unless") @r3 exists@ expression E; @@ -66,5 +65,4 @@ position p1; @script:python depends on report@ p1 << r3.p1; @@ -msg = "x = atomic_add_return(-1, ...)" -coccilib.report.print_report(p1[0], msg) +coccilib.report.print_report(p1[0], "x = atomic_add_return(-1, ...)") -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v2 8/8] Coccinelle: atomic_as_refcounter: Use format string directly in the first SmPL rule 2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring ` (6 preceding siblings ...) 2018-07-16 17:36 ` [PATCH v2 7/8] Coccinelle: atomic_as_refcounter: Use string literals directly in two SmPL rules SF Markus Elfring @ 2018-07-16 17:39 ` SF Markus Elfring 7 siblings, 0 replies; 17+ messages in thread From: SF Markus Elfring @ 2018-07-16 17:39 UTC (permalink / raw) To: kernel-janitors, Elena Reshetova, Julia Lawall, Kees Cook, Masahiro Yamada Cc: LKML, Coccinelle, Gilles Muller, Michal Marek, Nicolas Palix From: Markus Elfring <elfring@users.sourceforge.net> Date: Mon, 16 Jul 2018 18:45:55 +0200 A format string was assigned to the Python variable “msg” before it was used in a rule of a script for the semantic patch language. Delete this extra variable so that the specified string object is directly used for the desired data output. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> --- scripts/coccinelle/api/atomic_as_refcounter.cocci | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/coccinelle/api/atomic_as_refcounter.cocci b/scripts/coccinelle/api/atomic_as_refcounter.cocci index c9b838941024..c2b55a5babb0 100644 --- a/scripts/coccinelle/api/atomic_as_refcounter.cocci +++ b/scripts/coccinelle/api/atomic_as_refcounter.cocci @@ -40,8 +40,9 @@ identifier fname2 =~ "(?:call_rcu|de(?:l|stroy)|(?:queue|schedule)_work)"; p1 << r1.p1; p2 << r1.p2; @@ -msg = "atomic_dec_and_test variation before object free at line %s." -coccilib.report.print_report(p1[0], msg % (p2[0].line)) +coccilib.report.print_report(p1[0], + "atomic_dec_and_test variation before object free at line %s." + % (p2[0].line)) @r2 exists@ expression a; -- 2.18.0 ^ permalink raw reply related [flat|nested] 17+ messages in thread
end of thread, other threads:[~2018-08-01 12:30 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CAK7LNAT=7E0HFd+MM92VcNdA1i6AME6qyFA9sN-2dabibxkiJg@mail.gmail.com>
2018-07-03 7:30 ` [PATCH 0/6] Coccinelle: atomic_as_refcounter: Improvements for source code search specifications SF Markus Elfring
2018-07-03 7:35 ` [PATCH 1/6] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from two SmPL constrai SF Markus Elfring
2018-07-03 7:37 ` [PATCH 2/6] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule SF Markus Elfring
2018-07-03 7:40 ` [PATCH 3/6] Coccinelle: atomic_as_refcounter: Use typ =?UTF-8?Q?e_=e2=80=9cexpressio SF Markus Elfring
2018-07-03 7:42 ` [PATCH 4/6] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rules SF Markus Elfring
2018-07-03 7:45 ` [PATCH 5/6] Coccinelle: atomic_as_refcounter: Use nested disjunctions " SF Markus Elfring
2018-07-03 7:48 ` [PATCH 6/6] Coccinelle: atomic_as_refcounter: Use format strings directly in " SF Markus Elfring
2018-08-01 12:30 ` [PATCH] Coccinelle: atomic_as_refcounter: Merge two " SF Markus Elfring
2018-07-16 17:21 ` [PATCH v2 0/8] Coccinelle: atomic_as_refcounter: Adjustments for source code search specifications SF Markus Elfring
2018-07-16 17:24 ` [PATCH v2 1/8] Coccinelle: atomic_as_refcounter: Delete an unnecessary SmPL rule SF Markus Elfring
2018-07-16 17:26 ` [PATCH v2 2/8] Coccinelle: atomic_as_refcounter: Omit placeholder specifications from a SmPL constra SF Markus Elfring
2018-07-16 17:28 ` [PATCH v2 3/8] Coccinelle: atomic_as_refcounter: Optimise a disjunction in the first SmPL rule SF Markus Elfring
2018-07-16 17:30 ` [PATCH v2 4/8] Coccinelle: atomic_as_refcounter: Use =?UTF-8?Q?type_=e2=80=9cexpres SF Markus Elfring
2018-07-16 17:32 ` [PATCH v2 5/8] Coccinelle: atomic_as_refcounter: Replace disjunction by a constraint in two SmPL rul SF Markus Elfring
2018-07-16 17:34 ` [PATCH v2 6/8] Coccinelle: atomic_as_refcounter: Use nested disjunctions in the first SmPL rule SF Markus Elfring
2018-07-16 17:36 ` [PATCH v2 7/8] Coccinelle: atomic_as_refcounter: Use string literals directly in two SmPL rules SF Markus Elfring
2018-07-16 17:39 ` [PATCH v2 8/8] Coccinelle: atomic_as_refcounter: Use format string directly in the first SmPL rule SF Markus Elfring
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).