From nobody Sat Feb 7 18:58:33 2026 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 06019C4167B for ; Wed, 29 Nov 2023 22:18:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234880AbjK2WR5 (ORCPT ); Wed, 29 Nov 2023 17:17:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234683AbjK2WRw (ORCPT ); Wed, 29 Nov 2023 17:17:52 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B18C3A8 for ; Wed, 29 Nov 2023 14:17:58 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ADC07C433C7; Wed, 29 Nov 2023 22:17:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701296278; bh=KFgXr/RumUIJadwpEcu//GyTiF0kTEm+5XAlvLCCz7E=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=nRDN1qEEHl7dFz/5CrWxL+r3hOnCBzr4/9zCXF9X4gp74LrAI6/zTeROZM3mYs4ob c3g8vMdugy9aZ0I6f/XXFWt/W2NjaMbek0PPZM+B5TbXRz1dsMJVZgOdMh/QA9pCqN 6pHCSYKAy1aYymF/77P3siivTkUp3eO9fso96jF1l3WUnsCtYgBzPDBsiJ5+7iDk35 EpAfyCMtQJoBKiinmKJ8RM6BquawBzW5MHJSupZg0UwUH2ncH2KOlrZjjKrHmrdces /o/eamEOxhWJFEnzsz4l/bYJRuV/U/uZVuBTn4D0VawMwPDMjgaKFpjB37/us+1Zor Q1X241pIp8KqQ== From: Nathan Chancellor Date: Wed, 29 Nov 2023 15:17:41 -0700 Subject: [PATCH v3 1/3] x86/tools: objdump_reformat.awk: Ensure regex matches fwait MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20231129-objdump-reformat-llvm-v3-1-0d855e79314d@kernel.org> References: <20231129-objdump-reformat-llvm-v3-0-0d855e79314d@kernel.org> In-Reply-To: <20231129-objdump-reformat-llvm-v3-0-0d855e79314d@kernel.org> To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com Cc: x86@kernel.org, ndesaulniers@google.com, keescook@chromium.org, samuelzeter@gmail.com, mhiramat@kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, patches@lists.linux.dev, Nathan Chancellor X-Mailer: b4 0.13-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1649; i=nathan@kernel.org; h=from:subject:message-id; bh=zK2t0BsgpjdtAaQUa63zamoD0D6aFJDYhxA7YOLDI9o=; b=owGbwMvMwCUmm602sfCA1DTG02pJDKnpOyYzvbzN/zgk+u1Zk/hyKYOHB0yKlJ+VCJxWi392L G0al/2TjlIWBjEuBlkxRZbqx6rHDQ3nnGW8cWoSzBxWJpAhDFycAjCRFhOGn4yhgY//zFDyeqWV cvnjxocrhd8w+jYlmy3KNe6s3abjnMPI0L5a4L3cgZIp7BMfNBeXicsKPpVquS7dt+2I0LIN2mt WMQAA X-Developer-Key: i=nathan@kernel.org; a=openpgp; fpr=2437CB76E544CB6AB3D9DFD399739260CB6CB716 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Samuel Zeter If there is "wait" mnemonic in the line being parsed, it is incorrectly handled by the script, and an extra line of "fwait" in objdump_reformat's output is inserted. As insn_decoder_test relies upon the formatted output, the test fails. This is reproducible when disassembling with llvm-objdump: Pre-processed lines: ffffffff81033e72: 9b wait ffffffff81033e73: 48 c7 c7 89 50 42 82 movq After objdump_reformat.awk: ffffffff81033e72: 9b fwait ffffffff81033e72: wait ffffffff81033e73: 48 c7 c7 89 50 42 82 movq The regex match now accepts spaces or tabs, along with the "fwait" instruction. Closes: https://github.com/ClangBuiltLinux/linux/issues/1364 Acked-by: Masami Hiramatsu Tested-by: Nathan Chancellor Reviewed-by: Kees Cook Tested-by: Kees Cook Signed-off-by: Samuel Zeter Signed-off-by: Nathan Chancellor --- arch/x86/tools/objdump_reformat.awk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/tools/objdump_reformat.awk b/arch/x86/tools/objdump_r= eformat.awk index f418c91b71f0..276e572a6f60 100644 --- a/arch/x86/tools/objdump_reformat.awk +++ b/arch/x86/tools/objdump_reformat.awk @@ -12,7 +12,7 @@ BEGIN { prev_hex =3D "" prev_mnemonic =3D "" bad_expr =3D "(\\(bad\\)|^rex|^.byte|^rep(z|nz)$|^lock$|^es$|^cs$|^ss$|^d= s$|^fs$|^gs$|^data(16|32)$|^addr(16|32|64))" - fwait_expr =3D "^9b " + fwait_expr =3D "^9b[ \t]*fwait" fwait_str=3D"9b\tfwait" } =20 --=20 2.43.0 From nobody Sat Feb 7 18:58:33 2026 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 2084EC4167B for ; Wed, 29 Nov 2023 22:18:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234910AbjK2WSA (ORCPT ); Wed, 29 Nov 2023 17:18:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229611AbjK2WRx (ORCPT ); Wed, 29 Nov 2023 17:17:53 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9164DBD for ; Wed, 29 Nov 2023 14:17:59 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8B968C433CD; Wed, 29 Nov 2023 22:17:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701296279; bh=hd6/cveEUNsa+JSOFRwRWxLeImJJ4mFqSehJRZNpmqg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=F3vkcUrbC9fWRuaqydSqSzMnS4KrvklUnCQDUM+XP/oKoItOMpu98Bi3SY13DSz/P cDtJLUrBfefCqkbsxto5aYavpQY+yoG3B64NcIJPuY9Qcp9SRrU1jfppB+dzVHYG0V gXE6e136klP5+q8LmaS30w0wuJ9Q5FrtZ61mpDPuw8QXhs3e3XFUDzlBrJ+KLuRs5i pk9DCDJioatUD9aaAqkcoPOyslb4mVXL+Fk1SWo4fDxBbJnsi80ksLTl2vhU1v4E2B LTYHh2nmmNX/M5UKLRfGPqIiSd3ZO9a+RUdisQ0mtqWtekbQEN2wuwdf3bcBK3p3bM X4o8SxoIHTjMg== From: Nathan Chancellor Date: Wed, 29 Nov 2023 15:17:42 -0700 Subject: [PATCH v3 2/3] x86/tools: objdump_reformat.awk: Allow for spaces MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20231129-objdump-reformat-llvm-v3-2-0d855e79314d@kernel.org> References: <20231129-objdump-reformat-llvm-v3-0-0d855e79314d@kernel.org> In-Reply-To: <20231129-objdump-reformat-llvm-v3-0-0d855e79314d@kernel.org> To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com Cc: x86@kernel.org, ndesaulniers@google.com, keescook@chromium.org, samuelzeter@gmail.com, mhiramat@kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, patches@lists.linux.dev, Nathan Chancellor X-Mailer: b4 0.13-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1362; i=nathan@kernel.org; h=from:subject:message-id; bh=JQyd5OlWKOWs6EDp0gJ7kaEqsFs19g/OI4Sr1wB1jyI=; b=owGbwMvMwCUmm602sfCA1DTG02pJDKnpO6Y45azZaWJU3r5C8pj7naR1l/T5G3oUhSb0pcokM kzZf2NlRykLgxgXg6yYIkv1Y9XjhoZzzjLeODUJZg4rE8gQBi5OAZhIrzAjQ8unR2FudaeevFBf LigS/VHRq/Qp78ytJ2/+bpzi0bjH1JLhn3FLaZTx264pmbKF1l2febQeOu3n4Cp/bhIrN8fS7FE rMwA= X-Developer-Key: i=nathan@kernel.org; a=openpgp; fpr=2437CB76E544CB6AB3D9DFD399739260CB6CB716 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Samuel Zeter GNU objdump and LLVM objdump have differing output formats. Specifically, GNU objump will format its output as: address:hex, whereas LLVM objdump displays its output as address:hex. objdump_reformat.awk incorrectly handles this discrepancy due to the unexpected space and as a result insn_decoder_test fails, as its input is garbled. The instruction line being tokenized now handles a space and colon, or tab delimiter. Closes: https://github.com/ClangBuiltLinux/linux/issues/1364 Acked-by: Masami Hiramatsu Tested-by: Nathan Chancellor Reviewed-by: Kees Cook Tested-by: Kees Cook Signed-off-by: Samuel Zeter Signed-off-by: Nathan Chancellor --- arch/x86/tools/objdump_reformat.awk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/tools/objdump_reformat.awk b/arch/x86/tools/objdump_r= eformat.awk index 276e572a6f60..a4120d907277 100644 --- a/arch/x86/tools/objdump_reformat.awk +++ b/arch/x86/tools/objdump_reformat.awk @@ -22,7 +22,7 @@ BEGIN { } =20 /^ *[0-9a-f]+:/ { - if (split($0, field, "\t") < 3) { + if (split($0, field, /: |\t/) < 3) { # This is a continuation of the same insn. prev_hex =3D prev_hex field[2] } else { --=20 2.43.0 From nobody Sat Feb 7 18:58:33 2026 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 B736AC4167B for ; Wed, 29 Nov 2023 22:18:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343507AbjK2WSD (ORCPT ); Wed, 29 Nov 2023 17:18:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234811AbjK2WRy (ORCPT ); Wed, 29 Nov 2023 17:17:54 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7508FA3 for ; Wed, 29 Nov 2023 14:18:00 -0800 (PST) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6A9A3C433C8; Wed, 29 Nov 2023 22:17:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1701296280; bh=x4TBp4Z9XhIDLhh0xttndJ/PopPagvhZ0Lb2IMMCW4U=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=DgKRw0WcZAGYG6wH2WUqROmzHkf+woNvutMXXI8fghOo3fmrd7MvoqIFR1ntnbhRe 438ZPSoguk3VbBFQkIvvNb4oG4jexfiXAZ9X9DRnPUGSs+WG5muABqId2ZOhJFXMZx V2NAQk+g+qfLPher6FKc1PoxXkDsnqxD2+fwKsZLvDDmi9XOVW6cU0Yk8SuT+NTn3s OAnjn8KhEjzc+i1z1aT/iWJkguGGrFd/JAXR72xCt/vpRBuY7cVoP4XaUn0tJPcqXX uZ8ujdu1DtAGZR9DPDKHd7xFEk6LaliHetyFbSEZKp+NipFuwvlRu98bwI6DvASNED IIWikr5ga4PiQ== From: Nathan Chancellor Date: Wed, 29 Nov 2023 15:17:43 -0700 Subject: [PATCH v3 3/3] x86/tools: Remove chkobjdump.awk MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20231129-objdump-reformat-llvm-v3-3-0d855e79314d@kernel.org> References: <20231129-objdump-reformat-llvm-v3-0-0d855e79314d@kernel.org> In-Reply-To: <20231129-objdump-reformat-llvm-v3-0-0d855e79314d@kernel.org> To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com Cc: x86@kernel.org, ndesaulniers@google.com, keescook@chromium.org, samuelzeter@gmail.com, mhiramat@kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, patches@lists.linux.dev, Nathan Chancellor X-Mailer: b4 0.13-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=2562; i=nathan@kernel.org; h=from:subject:message-id; bh=x4TBp4Z9XhIDLhh0xttndJ/PopPagvhZ0Lb2IMMCW4U=; b=owGbwMvMwCUmm602sfCA1DTG02pJDKnpO6acFV/52cUv7O85hTX/f2uwvFNNe1awYMVhnWQ91 wOZGkpTO0pZGMS4GGTFFFmqH6seNzScc5bxxqlJMHNYmUCGMHBxCsBEZA0Z/see2H/ywST2UN5r Suy9ctuEt148t0Fjl2C976+3H1Ll5n9j+CvI0Zbz5dC3TNHZVe2NCtdyly570pC7bvPN1ut9jpF bn/MBAA== X-Developer-Key: i=nathan@kernel.org; a=openpgp; fpr=2437CB76E544CB6AB3D9DFD399739260CB6CB716 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This check is superfluous now that the minimum version of binutils to build the kernel is 2.25. This also fixes an error seen with llvm-objdump because it does not support '-v' prior to LLVM 13: llvm-objdump: error: unknown argument '-v' Closes: https://github.com/ClangBuiltLinux/linux/issues/1362 Link: https://github.com/llvm/llvm-project/commit/dde24a87c55f82d8c7b3bf3ea= fb10f2b9b2b9a01 Reviewed-by: Kees Cook Tested-by: Kees Cook Signed-off-by: Nathan Chancellor --- arch/x86/tools/Makefile | 2 +- arch/x86/tools/chkobjdump.awk | 34 ---------------------------------- 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/arch/x86/tools/Makefile b/arch/x86/tools/Makefile index 90e820ac9771..7278e2545c35 100644 --- a/arch/x86/tools/Makefile +++ b/arch/x86/tools/Makefile @@ -17,7 +17,7 @@ reformatter =3D $(srctree)/arch/x86/tools/objdump_reforma= t.awk chkobjdump =3D $(srctree)/arch/x86/tools/chkobjdump.awk =20 quiet_cmd_posttest =3D TEST $@ - cmd_posttest =3D ($(OBJDUMP) -v | $(AWK) -f $(chkobjdump)) || $(OBJD= UMP) -d -j .text $(objtree)/vmlinux | $(AWK) -f $(reformatter) | $(obj)/ins= n_decoder_test $(posttest_64bit) $(posttest_verbose) + cmd_posttest =3D $(OBJDUMP) -d -j .text $(objtree)/vmlinux | $(AWK) = -f $(reformatter) | $(obj)/insn_decoder_test $(posttest_64bit) $(posttest_v= erbose) =20 quiet_cmd_sanitytest =3D TEST $@ cmd_sanitytest =3D $(obj)/insn_sanity $(posttest_64bit) -m 1000000 diff --git a/arch/x86/tools/chkobjdump.awk b/arch/x86/tools/chkobjdump.awk deleted file mode 100644 index a4cf678cf5c8..000000000000 --- a/arch/x86/tools/chkobjdump.awk +++ /dev/null @@ -1,34 +0,0 @@ -# GNU objdump version checker -# -# Usage: -# objdump -v | awk -f chkobjdump.awk -BEGIN { - # objdump version 2.19 or later is OK for the test. - od_ver =3D 2; - od_sver =3D 19; -} - -/^GNU objdump/ { - verstr =3D "" - gsub(/\(.*\)/, ""); - for (i =3D 3; i <=3D NF; i++) - if (match($(i), "^[0-9]")) { - verstr =3D $(i); - break; - } - if (verstr =3D=3D "") { - printf("Warning: Failed to find objdump version number.\n"); - exit 0; - } - split(verstr, ver, "."); - if (ver[1] > od_ver || - (ver[1] =3D=3D od_ver && ver[2] >=3D od_sver)) { - exit 1; - } else { - printf("Warning: objdump version %s is older than %d.%d\n", - verstr, od_ver, od_sver); - print("Warning: Skipping posttest."); - # Logic is inverted, because we just skip test without error. - exit 0; - } -} --=20 2.43.0