Received: by 2002:ab2:6991:0:b0:1f2:fff1:ace7 with SMTP id v17csp87121lqo; Wed, 27 Mar 2024 07:38:48 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUDG06uuQ/FkaE/hAs6/PMV8wqOTAqFkRgwML6oqUcnae48HQADtco+3E7hBA9zi48amXmUC/3MUro0H9rTI/jBRGrIjeSpb9Z4HF1yMw== X-Google-Smtp-Source: AGHT+IGkKdLL2TtrnclAG5Mo4ELBxtHz4xlUj6v8zp80qlOAdHdLv9sqBZ1PcYEq5u7Nx468S7dl X-Received: by 2002:a05:622a:47ce:b0:431:8257:5520 with SMTP id dp14-20020a05622a47ce00b0043182575520mr1216771qtb.54.1711550328143; Wed, 27 Mar 2024 07:38:48 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711550328; cv=pass; d=google.com; s=arc-20160816; b=txsDu25jX0lphuk6K+cuFdTSmhpXCOSmVEwM3xZE3ZALhXBJAQyf8pkSlexJrMjdaM K5TwiDmJrwuWqnMQ45LB+6n6SiWFB7s8imwALcPMGjsWnL/eg7e3bfBh0TGFdLdUcO7N xUDk5YMfQ1213daZ29uBfsK5fBHuu56lVok7IMm0GbKaRUAoTaYQffQ8V6rsyFCah2qD eHYwFmZG7KT0MJ0uV/FbWTPUdr0qgGlg71EoZu8CJjq0dNcvgI9Zy2hj7C8QCVOjRAjx TSzNkXsIqJXXIv2A0xjHX99lN8pHbXl5U0WaCX9qcw8MOGbZxxrAFo5o+rux1+4mJY+n 4IpA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=ui-outboundreport:content-transfer-encoding:subject:from:cc:to :content-language:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature; bh=DqdtVmEhkl4Nna1V36uPqCzGe+SfZ6RaLtSSk2wAW+s=; fh=LiQ12xojpNFEoFi33aZv4m6uMhRvO6zsXroxccM8YcM=; b=XoAZ31ESNjxbzpi6fPbxiEfs09LTTxFEm6MQ58EqQKGZsLEmqXAZfFbQpNGZEAwufR ITCZkjg8dPFUdgNy3nU/Of6xxZbOKeOB+M1IOuqgzipZYAy1QtrsF7TJbt6qj8nUOD1d qe+pm3+JzhWNwN5OPECduApvzMXlkq8pvOEia6qpiSs3WFszE8DL4jwLPbXgX/22oiMi +1BfA5aWqMdYRSgD2FCTjPuziBVRUIkUKSagDRUfRiyrBcAIaiXrxCBkobuloWUamrve 2VSxPKytV3PTm10pYKYdGqTobfTTNfCtdYzBy5YcW2ty+OM0qdYUNStN+9At9JrSFj6y davw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@web.de header.s=s29768273 header.b=kAxnOBJa; arc=pass (i=1 spf=pass spfdomain=web.de dkim=pass dkdomain=web.de dmarc=pass fromdomain=web.de); spf=pass (google.com: domain of linux-kernel+bounces-121347-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-121347-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=web.de Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id a7-20020a05622a02c700b00431503f5f63si7496868qtx.398.2024.03.27.07.38.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Mar 2024 07:38:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-121347-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@web.de header.s=s29768273 header.b=kAxnOBJa; arc=pass (i=1 spf=pass spfdomain=web.de dkim=pass dkdomain=web.de dmarc=pass fromdomain=web.de); spf=pass (google.com: domain of linux-kernel+bounces-121347-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-121347-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=web.de Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id A09E51C2DF0A for ; Wed, 27 Mar 2024 14:38:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BECF215697B; Wed, 27 Mar 2024 13:10:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=web.de header.i=markus.elfring@web.de header.b="kAxnOBJa" Received: from mout.web.de (mout.web.de [212.227.15.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F108713A409; Wed, 27 Mar 2024 13:10:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.14 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711545047; cv=none; b=qlpN9atOwIrlmoaBVWfBIBOCRvHOgpiaEfxIT0KZSd2z/tPI6t7cwpsmBFLXrE2oAftrED5Bq7oyuIoBV5Vk93OebzLv5tesNgQXgJMmzW3QRAu3UOOe/GdM6S3TPblrqvMjfCNvQZER/Jk4R2Rz+90ANbhQFvlPjWBG/P7KEn4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711545047; c=relaxed/simple; bh=MyBQItI9T6oUNd3jwtJC7oQTKO/65lYY+BXiE3uPndY=; h=Message-ID:Date:MIME-Version:To:Cc:From:Subject:Content-Type; b=CGHC+qid8QISSnnqNs0IftUssNQkZVk0FwcywpcG4dit0LlkKJla1gk8MuWV5z/dUgINkPlySmYpUJKZhb/RC9ltRn10s3+346K65goc8M8VQJWcAR69g7yETK2IpqF7NHLRDuhim+pSN4RFDIUXdjRCTKBq+AaxFh2OL/LtUJk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=web.de; spf=pass smtp.mailfrom=web.de; dkim=pass (2048-bit key) header.d=web.de header.i=markus.elfring@web.de header.b=kAxnOBJa; arc=none smtp.client-ip=212.227.15.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=web.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=web.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=web.de; s=s29768273; t=1711545035; x=1712149835; i=markus.elfring@web.de; bh=DqdtVmEhkl4Nna1V36uPqCzGe+SfZ6RaLtSSk2wAW+s=; h=X-UI-Sender-Class:Date:To:Cc:From:Subject; b=kAxnOBJaDM6eXQahXFstfTa9+kemCOOTLnXjkEU+FWouPd5W/TKMI10SkQOW/eVm AAYYuDznjqKIUdOe84utsz3KZ3W7oaCYw8fTBsqV8S264YAOXrcOXI2JrvgJcL/zO m0Bd23Qcg2lBAALlt6pcoracJJnkQn1jMkfb07VN6I7XLqiQOyTlXz93kB0tr7wLH v5ik0bWviOk8reeHHVMMlCziCIcZlc3llVY5xaeqdVvrgFhPY4cZeXrwFpPhOB2Rr sCoutegslFi8Ov6JQwr/svBWZENSZb8CR+Q9Vtxg76GOc9vOorrGELqBynHJZ/UXX tgXS0GBlFSMBf0R27Q== X-UI-Sender-Class: 814a7b36-bfc1-4dae-8640-3722d8ec6cd6 Received: from [192.168.178.21] ([94.31.90.95]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N2jWK-1sqOoB2vXQ-00vB5u; Wed, 27 Mar 2024 14:10:35 +0100 Message-ID: Date: Wed, 27 Mar 2024 14:10:32 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-GB To: cocci@inria.fr, kernel-janitors@vger.kernel.org, Julia Lawall , Nicolas Palix Cc: LKML From: Markus Elfring Subject: =?UTF-8?Q?=5BPATCH=5D_Coccinelle=3A_api=3A_Add_SmPL_script_?= =?UTF-8?B?4oCcdXNlX3JldHVybl9wdHIuY29jY2nigJ0=?= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:/GsLLolzgh3Wa2AC7CoJ+Uxsk9+136AxseuiGYTn64DzRS/S+eb 94wDxJ3m9vCw81/NujQP+PwEx2iVtTwH1YnWGe3Q/+mu+J/RLPxUp6oCF3yTXkEk4miqU+1 BQOH2wqk06rvPBvo5pxvyWevTwTlkG9RZ81z5bWgevzEofZtO4Zi8E9W8BRPd/elPKWwzaP FbQOz0cq69ohbPJDA493w== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:Y/bbGx8rh3w=;UXBewfoOnNthhQhTisIQ2qEfgqb tT6gbGXsn3szUoSIPIxhyztP7NEajaHuUf1X8KE7Kvz2FvzEcrPdy+iIprIZIIXY1/zLiHbKV BNIxTllP9bu1jZTh0DKXPkJVYGIb1P6AzDP6irHg2BzNqBfvODY1zrlDqkR0TROkElMmO0Bkg ZAses44mEj779kI7XDunee0tmkerXKJBcoOO0CMYWP/sBSeyhdaHosHjPjEPbgMPHubfbMBwo xqpY1n69ZZxayA7xM1rNpK3tPnhxKlt7GLjn1JOa7uRhroknUmcuCkVMstvUwXmYdnhiMJbd6 ViUd+pvSRHRlsRewgT6HZY5sZxR0pEOO0PhGQijHjdvYjFdvPTKETwt1yKwNLQ3wKHx+BCmCL T6FpWMI4q5A55/toXjY7r27M2g73/GwoK1bJwvgaf+/WMZq7/AzbEmGnpj7DgJfskyDR/zuGk 1R2ueSLDWmAdJ2nV9UacgIpLkhCZvOdAjqIMX1lUhcOhGzT7WN4N2f0w3OHr7VCAcyg1lhJbB PTsMFU4h2ss3EV5eAPXQBHRT+99IPQyLaxtxqcWWI3ET/bORItwCkgEhkwNJ8Q/g5IHQDLcMy evuB7YIltZnvzlrDK5XMdXJjWjCgzxr9G/c+H8rIFuKPgbYVQMIQblP87ocmTHUAz3z4qh4Q+ 4lP4K6V0JKBZpqd1JvdvJpKYa842HcReern/JhMKkWnxn6qgMrOBIMyqaJenWpECjU+wku26A g8SI4q/dkyl85ghlGkl7vkHrmTHjhRgUHutPrAerboglvw+F2m3aLLwGhC/8taggS5RzRaFAl CcvUDsQpkMsGaGqUt21rIABkIsvDwaedoY0h9JIdQxGg4= From: Markus Elfring Date: Wed, 27 Mar 2024 13:56:03 +0100 A wrapper macro is available since the commit 54da6a0924311c7cf5015533991e= 44fb8eb12773 ("locking: Introduce __cleanup() based infrastructure"). Provide design options for the adjustment of affected source code by the means of the semantic patch language (Coccinelle software). Signed-off-by: Markus Elfring =2D-- scripts/coccinelle/api/use_return_ptr.cocci | 57 +++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 scripts/coccinelle/api/use_return_ptr.cocci diff --git a/scripts/coccinelle/api/use_return_ptr.cocci b/scripts/coccine= lle/api/use_return_ptr.cocci new file mode 100644 index 000000000000..7b42a58cceb2 =2D-- /dev/null +++ b/scripts/coccinelle/api/use_return_ptr.cocci @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: GPL-2.0 +/// Simplify a return statement by using a known wrapper macro. +// +// Keywords: wrapper macro conversion returning objects +// Confidence: High +// Options: --no-includes --include-headers + +virtual context, patch, report, org + +@depends on context@ +expression e; +@@ + if (!e) + return NULL; + <+... when any +*return \( e \| no_free_ptr(e) \) + ; + ...+> + +@depends on patch@ +expression e; +@@ + if (!e) + return NULL; + <+... when any +( +-return ++return_ptr( + e ++) + ; +| +-return no_free_ptr ++return_ptr + (e); +) + ...+> + +@x depends on org || report@ +expression e; +position p; +@@ + if (!e) + return NULL; + <+... when any + return@p \( e \| no_free_ptr(e) \) ; + ...+> + +@script:python depends on org@ +p << x.p; +@@ +coccilib.org.print_todo(p[0], "WARNING: opportunity for return_ptr()") + +@script:python depends on report@ +p << x.p; +@@ +coccilib.report.print_report(p[0], "WARNING: opportunity for return_ptr()= ") =2D- 2.44.0