Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp794668imm; Wed, 1 Aug 2018 05:32:19 -0700 (PDT) X-Google-Smtp-Source: AAOMgpf6zCnRqlNhaEziP6r9ZiBIKOtXQlly/w3eVi5hJGbsye3ryy4TOCb83JXI/CW3ePFw8URy X-Received: by 2002:a17:902:e20b:: with SMTP id ce11-v6mr23989676plb.136.1533126739155; Wed, 01 Aug 2018 05:32:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533126739; cv=none; d=google.com; s=arc-20160816; b=lD6rnKGZtCwTzgQ5mY+NdwoLaZkyJWTfAMayWaMuEYoJoEIOwnQvLzTkfCzU9vy2ko HQ1yHQpRkYULfsU2vw/nTcwvEpodjO9NID/SE63J6xxAOG6MmUXWeEUvK0VDhvDNoY+e nyd4MNVfjbqD++MfcntS6UztQO+mDLn0kFqG7p0Pawfzi15lkT7IEz1cHlKsVdeaO/Rn 9Rq7C4d6zTI6lPr2k4Bd68YRuGmubcdnY4ddXv+QdnTzKVeiQRgDT+5OKgwTdjuNSjhg rSlOeSly0MSV3UyXHObyiOvQ//xOqCtnILimHxua42TedQcauijPEoOyOLWKv4a4zH7t geCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:openpgp:references:cc:to:from:subject :arc-authentication-results; bh=ru8E7sExeUjcb9mUuE+g3igvPfL5PK4kFFw1JAlWH8k=; b=kuMhfWqfpupe/6gFFGB9DMYcryNyZMQqUklwGgX1iPoRqOmiH5Sp+qILugmQ6KuZsC lvcLyYZzfzL2/M654424zpuMnq+nbwAchoNXjfvpf1BvK6odV9gHQz2fqOIWySlfZnuX QDOCk4N1GGTDZBnBTEWrupbbeEi22DF0v2HBSLQnMWfFGkbe+JMXJkVkBl2iQ4DoWrsW Za3m8uK6jjoATIPJNW/AN2kGTlx4RswNKzwdY+iCT+ErxKVR6Gv/AR/ABgfhb988a/+r DaNz5OSw8XkUBqqSiEQZW8whV5FA7TE01xc5NO0SSJjuX0bwfG7DbBRQg6po/+saxcpT XWPQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=sourceforge.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v17-v6si16835828pgk.135.2018.08.01.05.32.04; Wed, 01 Aug 2018 05:32:19 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=NONE dis=NONE) header.from=sourceforge.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389140AbeHAOQS (ORCPT + 99 others); Wed, 1 Aug 2018 10:16:18 -0400 Received: from mout.web.de ([217.72.192.78]:49745 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388615AbeHAOQS (ORCPT ); Wed, 1 Aug 2018 10:16:18 -0400 Received: from [192.168.1.2] ([77.181.227.154]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0Lal6K-1gDHC40KDo-00kPg8; Wed, 01 Aug 2018 14:30:24 +0200 Subject: [PATCH] Coccinelle: atomic_as_refcounter: Merge two SmPL rules From: SF Markus Elfring To: kernel-janitors@vger.kernel.org, Elena Reshetova , Julia Lawall , Kees Cook , Masahiro Yamada Cc: LKML , Coccinelle , Gilles Muller , Michal Marek , Nicolas Palix References: <6043bdc9-529f-e93f-e509-e2dedd290a10@users.sourceforge.net> <3d4a4864-3b48-94a7-39c3-0f0e3018f9d5@users.sourceforge.net> Openpgp: preference=signencrypt Message-ID: <9d9a0d3c-e4fd-d950-518a-b567fe18ff21@users.sourceforge.net> Date: Wed, 1 Aug 2018 14:30:18 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <3d4a4864-3b48-94a7-39c3-0f0e3018f9d5@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:A7aVO3b77eFyaqBFuQ4cSP+yME/d8m94qxlqHrgvYBI1vwH1lCf YeSBz37ok9IH9lbQKcn99DNkwpQdPWBQYrR/aaZyzdcjtgToZCDeoXBXv93PrRYp5Chqkeh zIoAm+zIggG/MxCXWlHD7PKyOHcIjgCeDGTnGnQX9xe2KbAAHlREc5p3U152JFjIBQgCYHB lO7sCVjgKvhbM5D3INdYg== X-UI-Out-Filterresults: notjunk:1;V01:K0:iwrnFUePW6k=:F5HkQjLeMJuiVvlk0y9J1Q KiY1Hkr0/XwIY6RgjtPdH6cjej3CRZnJlZAns566gpzjjcZkHlR4c/54tPSAMeZ7YtrxM5M+w SCiWk/81FkHNdM8NCX7ogryh4ONky+d/OFyxdr02KiEmRMbS4NyAMRWGyCG0h4TjcW2GeoUG0 npU1lmtUpFyzAIBENUtODyry5g8jcyEutnMAEskvNC8ocsGLThe4poCtIGK22Czrw4pb4fRPx DpXn7SX41kMsFGaxyzu58eNrkxMv7HSitVOYdEtK5vYLu5YXiJx94AcRGuZxr4s3tJqsHT7AZ 2MtNe+bVFJ4bPE7OkoEimyyqOQZjXUCmJPfn8lmDpyajF/ekl5Cdp8rhViJMzLvex6RMA+Teq /NaL16sl3jsFhAEYU46AT6qnAp5MzmXBPdRiXihOnx2Zj78ng+rU8MPtBk5mqEHB4hHRPExVF hZQZo5tr0JtXS7egST7HJVRiqteARfMh2rQshkjgf/sshq3s1UvFGSTM1YEmOGiykl2zzSwhC 0vPiupbeaAPi6QG1z5vLXeuOpOA0P8tOW20XylnNSTexJ9argz4VLnxaDc9+kzfwFntFaah17 cvUARcbEJ/44wkk0cjhFxZHVsm0eeDWpxuG0eQylo04IJ74ou60TwHwqzsIvENHvZjsQqm548 Pm2ZSP1n6jKK64oS8yUITF6UAHy12nHnHFd48qbecyh3MbW0sQjf4k1uG3aRw/QTj33eCSuLo 99w97RGPXUVnyGXIC4+6v4vP01nCVPnbU2rgfw1VtSYf8dLVLtNfHy54duSoL2ZEtfsrxKSQ6 2955U0T Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring 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 --- .../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