From nobody Sun Sep 14 14:27:39 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 30F44C05027 for ; Fri, 20 Jan 2023 12:35:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230227AbjATMfp (ORCPT ); Fri, 20 Jan 2023 07:35:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230160AbjATMfb (ORCPT ); Fri, 20 Jan 2023 07:35:31 -0500 Received: from wp530.webpack.hosteurope.de (wp530.webpack.hosteurope.de [80.237.130.52]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 144B4BD17F for ; Fri, 20 Jan 2023 04:35:24 -0800 (PST) Received: from ip4d14bd73.dynamic.kabel-deutschland.de ([77.20.189.115] helo=truhe.fritz.box); authenticated by wp530.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) id 1pIqc5-0007pV-WF; Fri, 20 Jan 2023 13:35:22 +0100 From: Thorsten Leemhuis To: Joe Perches , Andy Whitcroft , Dwaipayan Ray , Lukas Bulwahn Cc: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= , Andrew Morton , linux-kernel@vger.kernel.org Subject: [PATCH v4 1/3] checkpatch: warn when unknown tags are used for links Date: Fri, 20 Jan 2023 13:35:18 +0100 Message-Id: <3b036087d80b8c0e07a46a1dbaaf4ad0d018f8d5.1674217480.git.linux@leemhuis.info> X-Mailer: git-send-email 2.39.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-bounce-key: webpack.hosteurope.de;linux@leemhuis.info;1674218125;93060bd7; X-HE-SMSGID: 1pIqc5-0007pV-WF Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kai Wasserb=C3=A4ch Issue a warning when encountering URLs behind unknown tags, as Linus recently stated ```please stop making up random tags that make no sense. Just use "Link:"```[1]. That statement was triggered by an use of 'BugLink', but that's not the only tag people invented: $ git log -100000 --no-merges --format=3Demail -P \ --grep=3D'^\w+:[ \t]*http' | grep -Poh '^\w+:[ \t]*http' | \ sort | uniq -c | sort -rn | head -n 20 103958 Link: http 418 BugLink: http 372 Patchwork: http 280 Closes: http 224 Bug: http 123 References: http 84 Bugzilla: http 61 URL: http 42 v1: http 38 Datasheet: http 20 v2: http 9 Ref: http 9 Fixes: http 9 Buglink: http 8 v3: http 8 Reference: http 7 See: http 6 1: http 5 link: http 3 Link:http Some of these non-standard tags make it harder for external tools that rely on use of proper tags. One of those tools is the regression tracking bot 'regzbot', which looks out for "Link:" tags pointing to reports of tracked regressions. The initial idea was to use a disallow list to raise an error when encountering known unwanted tags like BugLink:; during review it was requested to use a list of allowed tags instead[2]. Link: https://lore.kernel.org/all/CAHk-=3Dwgs38ZrfPvy=3DnOwVkVzjpM3VFU1zobP= 37Fwd_h9iAD5JQ@mail.gmail.com/ [1] Link: https://lore.kernel.org/all/15f7df96d49082fb7799dda6e187b33c84f38831.= camel@perches.com/ [2] Signed-off-by: Kai Wasserb=C3=A4ch Co-developed-by: Thorsten Leemhuis Signed-off-by: Thorsten Leemhuis --- scripts/checkpatch.pl | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 78cc595b98ce..d739ce0909b1 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -3250,6 +3250,18 @@ sub process { $commit_log_possible_stack_dump =3D 0; } =20 +# Check for odd tags before a URI/URL + if ($in_commit_log && + $line =3D~ /^\s*(\w+):\s*http/ && $1 ne 'Link') { + if ($1 =3D~ /^v(?:ersion)?\d+/i) { + WARN("COMMIT_LOG_VERSIONING", + "Patch version information should be after the --- line\n" . $her= ecurr); + } else { + WARN("COMMIT_LOG_USE_LINK", + "Unknown link reference '$1:', use 'Link:' instead\n" . $herecurr= ); + } + } + # Check for lines starting with a # if ($in_commit_log && $line =3D~ /^#/) { if (WARN("COMMIT_COMMENT_SYMBOL", --=20 2.39.0 From nobody Sun Sep 14 14:27:39 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8784BC05027 for ; Fri, 20 Jan 2023 12:35:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230213AbjATMfk (ORCPT ); Fri, 20 Jan 2023 07:35:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230147AbjATMf3 (ORCPT ); Fri, 20 Jan 2023 07:35:29 -0500 Received: from wp530.webpack.hosteurope.de (wp530.webpack.hosteurope.de [80.237.130.52]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1410DBD17B for ; Fri, 20 Jan 2023 04:35:24 -0800 (PST) Received: from ip4d14bd73.dynamic.kabel-deutschland.de ([77.20.189.115] helo=truhe.fritz.box); authenticated by wp530.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) id 1pIqc6-0007pV-Ds; Fri, 20 Jan 2023 13:35:22 +0100 From: Thorsten Leemhuis To: Joe Perches , Andy Whitcroft , Dwaipayan Ray , Lukas Bulwahn Cc: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= , Andrew Morton , linux-kernel@vger.kernel.org Subject: [PATCH v4 2/3] checkpatch: warn when Reported-by: is not followed by Link: Date: Fri, 20 Jan 2023 13:35:19 +0100 Message-Id: X-Mailer: git-send-email 2.39.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-bounce-key: webpack.hosteurope.de;linux@leemhuis.info;1674218125;93060bd7; X-HE-SMSGID: 1pIqc6-0007pV-Ds Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kai Wasserb=C3=A4ch Encourage patch authors to link to reports by issuing a warning, if a Reported-by: is not accompanied by a link to the report. Those links are often extremely useful for any code archaeologist that wants to know more about the backstory of a change than the commit message provides. That includes maintainers higher up in the patch-flow hierarchy, which is why Linus asks developers to add such links [1, 2, 3]. To quote [1]: > Again, the commit has a link to the patch *submission*, which is > almost entirely useless. There's no link to the actual problem the > patch fixes. > > [...] > > Put another way: I can see that > > Reported-by: Zhangfei Gao > > in the commit, but I don't have a clue what the actual report was, and > there really isn't enough information in the commit itself, except for > a fairly handwavy "Device drivers might, for instance, still need to > flush operations.." > > I don't want to know what device drivers _might_ do. I would want to > have an actual pointer to what they do and where. Another reason why these links are wanted: the ongoing regression tracking efforts can only scale with them, as they allow the regression tracking bot 'regzbot' to automatically connect tracked reports with patches that are posted or committed to fix tracked regressions. Link: https://lore.kernel.org/all/CAHk-=3DwjMmSZzMJ3Xnskdg4+GGz=3D5p5p+GSYy= FBTh0f-DgvdBWg@mail.gmail.com/ [1] Link: https://lore.kernel.org/all/CAHk-=3Dwgs38ZrfPvy=3DnOwVkVzjpM3VFU1zobP= 37Fwd_h9iAD5JQ@mail.gmail.com/ [2] Link: https://lore.kernel.org/all/CAHk-=3DwjxzafG-=3DJ8oT30s7upn4RhBs6TX-uV= FZ5rME+L5_DoJA@mail.gmail.com/ [3] Signed-off-by: Kai Wasserb=C3=A4ch Co-developed-by: Thorsten Leemhuis Signed-off-by: Thorsten Leemhuis Reported-by: Abaci Robot Reported-by: https://syzkaller.appspot.com/b/5266d464285a03cee9db Reported-by: syzbot+bba886ab504fcafecafe@syzkaller.appspotmail.com Reported-by: syzbot+cafecafecaca0cafecafe@syzkaller.appspotmail.com Reported-by: syzbot+df61b36319e045c00a08@syzkaller.appspotmail.com Reported-by: syzbot@syzkaller.appspotmail.com --- scripts/checkpatch.pl | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index d739ce0909b1..b74d6002f773 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -3155,8 +3155,20 @@ sub process { "Co-developed-by and Signed-off-by: name/email do not match \n" = . "$here\n" . $rawline . "\n" .$rawlines[$linenr]); } } + +# check if Reported-by: is followed by a Link: + if ($sign_off =3D~ /^reported(?:|-and-tested)-by:$/i) { + if (!defined $lines[$linenr]) { + WARN("BAD_REPORTED_BY_LINK", + "Reported-by: should be immediately followed by Link: to the rep= ort\n" . $herecurr . $rawlines[$linenr] . "\n"); + } elsif ($rawlines[$linenr] !~ m{^link:\s*https?://}i) { + WARN("BAD_REPORTED_BY_LINK", + "Reported-by: should be immediately followed by Link: with a URL= to the report\n" . $herecurr . $rawlines[$linenr] . "\n"); + } + } } =20 + # Check Fixes: styles is correct if (!$in_header_lines && $line =3D~ /^\s*fixes:?\s*(?:commit\s*)?[0-9a-f]{5,}\b/i) { --=20 2.39.0 From nobody Sun Sep 14 14:27:39 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F37DC25B4E for ; Fri, 20 Jan 2023 12:35:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230219AbjATMfm (ORCPT ); Fri, 20 Jan 2023 07:35:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230156AbjATMf3 (ORCPT ); Fri, 20 Jan 2023 07:35:29 -0500 Received: from wp530.webpack.hosteurope.de (wp530.webpack.hosteurope.de [80.237.130.52]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 14376BD17E for ; Fri, 20 Jan 2023 04:35:24 -0800 (PST) Received: from ip4d14bd73.dynamic.kabel-deutschland.de ([77.20.189.115] helo=truhe.fritz.box); authenticated by wp530.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) id 1pIqc6-0007pV-S7; Fri, 20 Jan 2023 13:35:22 +0100 From: Thorsten Leemhuis To: Joe Perches , Andy Whitcroft , Dwaipayan Ray , Lukas Bulwahn Cc: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= , Andrew Morton , linux-kernel@vger.kernel.org Subject: [PATCH v4 3/3] checkpatch: use proper way for show problematic line Date: Fri, 20 Jan 2023 13:35:20 +0100 Message-Id: X-Mailer: git-send-email 2.39.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-bounce-key: webpack.hosteurope.de;linux@leemhuis.info;1674218125;93060bd7; X-HE-SMSGID: 1pIqc6-0007pV-S7 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Instead of using an unnecessarily complicated approach to print a line that is warned about, use `$herecurr` instead, just like everywhere else in checkpatch. While at it, remove a superfluous space in one of the changed lines, too. In a unmodified line also remove a superfluous check for a space before a signed-off-by tag, to me consistent with the check at the start of the section. All three problems were found by Joe Perches during review of new code inspired by the code modified here. Signed-off-by: Thorsten Leemhuis --- scripts/checkpatch.pl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index b74d6002f773..b1bf0c7b03a7 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -3142,17 +3142,17 @@ sub process { if ($sign_off =3D~ /^co-developed-by:$/i) { if ($email eq $author) { WARN("BAD_SIGN_OFF", - "Co-developed-by: should not be used to attribute nominal patch= author '$author'\n" . "$here\n" . $rawline); + "Co-developed-by: should not be used to attribute nominal patch= author '$author'\n" . $herecurr); } if (!defined $lines[$linenr]) { WARN("BAD_SIGN_OFF", - "Co-developed-by: must be immediately followed by Signed-off-by:= \n" . "$here\n" . $rawline); - } elsif ($rawlines[$linenr] !~ /^\s*signed-off-by:\s*(.*)/i) { + "Co-developed-by: must be immediately followed by Signed-off-by:= \n" . $herecurr); + } elsif ($rawlines[$linenr] !~ /^signed-off-by:\s*(.*)/i) { WARN("BAD_SIGN_OFF", - "Co-developed-by: must be immediately followed by Signed-off-by:= \n" . "$here\n" . $rawline . "\n" .$rawlines[$linenr]); + "Co-developed-by: must be immediately followed by Signed-off-by:= \n" . $herecurr . $rawlines[$linenr] . "\n"); } elsif ($1 ne $email) { WARN("BAD_SIGN_OFF", - "Co-developed-by and Signed-off-by: name/email do not match \n" = . "$here\n" . $rawline . "\n" .$rawlines[$linenr]); + "Co-developed-by and Signed-off-by: name/email do not match\n" .= $herecurr . $rawlines[$linenr] . "\n"); } } =20 --=20 2.39.0