From nobody Sat Jul 25 16:45:13 2026 Received: from ultrarisc.com (unknown [218.76.62.146]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0B5C82DF13F for ; Thu, 16 Jul 2026 02:57:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=218.76.62.146 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784170634; cv=none; b=aG5WHlRDYD/YHcYvaNwGaLgdEEcjtM4MA/Syvb3U6/j9GQhh7gnlV6aTMoul4s2EHinx8cq7k2mYpKD2Zzxmd+X1gCdxIP5pvQT1EEv5eyhNPurTP4mPDXzzuz8Hw9FaVUYp7QxGdiwzEUs5b8czRjPk5F/hqEGhJp0WJsB2lWk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784170634; c=relaxed/simple; bh=m41AhLvdI6xnAu21Onfuta+tm4i4kIIcFrbVAjfBfPQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=qcGtFCHqk4hgZDubz4DBT8KgYIfr9dtRFYjADtzBoEpgOawCVMCjRhvHS58eWxuizRllvYADLuN9i78NQrmzgNEZM1FvvOKhU+uRG8iGP2uBc/7RPXeRZp0TaYqa/4jvbxftZagGq7NiwaGizfVHkX/NgiWuCX8k96e2VvIyzvg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ultrarisc.com; spf=none smtp.mailfrom=ultrarisc.com; dkim=pass (1024-bit key) header.d=ultrarisc.com header.i=@ultrarisc.com header.b=mR4AhRZa; arc=none smtp.client-ip=218.76.62.146 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ultrarisc.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=ultrarisc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ultrarisc.com header.i=@ultrarisc.com header.b="mR4AhRZa" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarisc.com; s=dkim; h=Received:From:Date:Subject: MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id: To:Cc; bh=0h9ykfBm1TlPG82ZDj0IGgYayGCylDc4VDIFcWIJ35k=; b=mR4AhR ZaDbsoBNo68GwBfPseq9VwFWVR2Bqp65LvFMFauKJQNzMu9puNMe/Bw0tspROAgB 0w/e6FHS9DLZK8isGIfUWugvdsf+UjnyhfVFcykUkJutVILsf42kwtVwoHR+rzlN fgNHATm2cLQ06owb4qAXf1Sb5HdeenTK63hVA= Received: from [127.0.0.1] (unknown [192.168.100.1]) by localhost.localdomain (Coremail) with SMTP id AQAAfwAnYUKbSFhqWaQSAA--.16988S2; Thu, 16 Jul 2026 10:57:31 +0800 (CST) From: Jia Wang Date: Thu, 16 Jul 2026 10:56:57 +0800 Subject: [PATCH] checkpatch: Avoid declaration spacing checks for asm statements Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260716-checkpatch-v1-1-3f5adf4cdc85@ultrarisc.com> X-B4-Tracking: v=1; b=H4sIAHhIWGoC/yXMTQ5AMBBA4avIrDWh/hJXEYsxhg4J0pZIxN0Vy 2/x3gWOrbCDOrrA8iFO1iUgjSMgg8vISvpg0IkukyotFRmmeUNPRuVVj1gMqDPqIASb5UHOb9a 0v93eTUz+PcB9Py2fR/xuAAAA X-Change-ID: 20260716-checkpatch-47daa5fa23cb To: Andy Whitcroft , Joe Perches Cc: linux-kernel@vger.kernel.org, Jia Wang X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784170621; l=2988; i=wangjia@ultrarisc.com; s=20260515; h=from:subject:message-id; bh=m41AhLvdI6xnAu21Onfuta+tm4i4kIIcFrbVAjfBfPQ=; b=Wj1mTNwy0f2fYZZjjx6f35NozgnC6bcHGXL1+YNdy44hC3QXDsTAOlOwEqEPSv4fh2HefrpfD jtrCzVoDcSqAi4iwezw/7LEB/1MZt1vXxOgxvv5/G5Js17+Q5LYsRtk X-Developer-Key: i=wangjia@ultrarisc.com; a=ed25519; pk=wGVm18siRScehKOkOz0WKxgxDy7IezHEszhnN4/TUCY= X-CM-TRANSID: AQAAfwAnYUKbSFhqWaQSAA--.16988S2 X-Coremail-Antispam: 1UD129KBjvJXoWxZr1ktF4UAF15Ww45Gr15Arb_yoW5AFyfpa 48Cw1Ygw1UGr1SqwsayayUXry5ua95tFW2qa9Iq3WjkFs8KFW8tF4akF1jyFsxJry5Ca4a qFsYqFnrGanYyr7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkF14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26r1j6r1xM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r1j 6r4UM28EF7xvwVC2z280aVAFwI0_Jr0_Gr1l84ACjcxK6I8E87Iv6xkF7I0E14v26r4j6r 4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0 I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r 4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwCY02Avz4vE-syl42xK 82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGw C20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7VAKI48J MIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMI IF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E 87Iv6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x0JUywZ7UUUUU= X-CM-SenderInfo: pzdqwylld63zxwud2x1vfou0bp/1tbiAQAIEWpUYNAAYgAMs4 The declaration spacing check uses C-oriented heuristics. In headers that contain assembler code, those heuristics can mistake instructions with comma-separated operands for declarations. Assembler headers across architectures can contain operand shapes that look like C declarations, and inline block comments can contain punctuation that should not prevent an assembler statement from being recognized. Teach the check to recognize assembler statement shapes in files that can contain assembler code, after ignoring inline block comments, and skip only this declaration spacing test for those lines. Normal C declaration spacing checks are unchanged. Signed-off-by: Jia Wang --- checkpatch's declaration spacing check uses C-oriented heuristics and can mistake assembler instructions with comma-separated operands for C declarations. This can trigger false LINE_SPACING warnings in headers that contain assembler code. Avoid the false positive by recognizing assembler statement shapes in files that may contain assembler code. Strip inline block comments before matching so punctuation inside comments does not prevent an assembler statement from being recognized. Only this declaration spacing test is skipped for matching assembler lines; normal C declaration spacing checks are unchanged. Validation covered the original asm-header reproducer, cross-architecture assembler operand samples, C declaration regression samples, and inline block comment cases. The HEAD patch passes: perl -c scripts/checkpatch.pl git format-patch -1 --stdout HEAD | scripts/checkpatch.pl --strict - --- scripts/checkpatch.pl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 2b7a42bbdd94..bb307d49fc86 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -1141,6 +1141,21 @@ sub deparenthesize { return $string; } =20 +sub is_asm_statement { + my ($realfile, $line) =3D @_; + + return 0 if (!defined($line)); + return 0 if ($realfile !~ /\.(?:h|s|S)$/); + + $line =3D~ s/^[\+ ]\s*//; + $line =3D~ s@/\*.*?\*/@@g; + + return 0 if ($line =3D~ /[;{}]/); + return 1 if ($line =3D~ /^(?:[A-Za-z_.\$][\w.\$]*:\s*)?\.?[A-Za-z_][\w.]*= \s+[^,]+,\s*.+$/); + + return 0; +} + sub seed_camelcase_file { my ($file) =3D @_; =20 @@ -4186,6 +4201,8 @@ sub process { $pl =3D~ /^\+\s+$Ident(?:\s+|\s*\*\s*)$Ident\s*[=3D,;\[]/ || # known declaration macros $pl =3D~ /^\+\s+$declaration_macros/) && + # assembler statements can look like declarations + !is_asm_statement($realfile, $prevrawline) && # for "else if" which can look like "$Ident $Ident" !($pl =3D~ /^\+\s+$c90_Keywords\b/ || # other possible extensions of declaration lines --- base-commit: 58717b2a1365d06c8c64b72aa948541b53fe31eb change-id: 20260716-checkpatch-47daa5fa23cb Best regards, -- =20 Jia Wang