From nobody Mon Apr 6 18:55:58 2026 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (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 7418A387374; Wed, 18 Mar 2026 08:41:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773823316; cv=none; b=Xk5q4I/tLvmkkhDtcxJ2liwajnSdU3y6a01K1psP3IqKy9qleOBr+RXgHsdtwOlQnrh0JogksJy/DKnclLYfja5Z0OZjGMPNuKL+NmmKMf8HEz/YZK2zKL5QNBH6o31717QF0dEF7h6Lbim4SaZaSDRiGmNMF5HLPpzBWLq7faA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773823316; c=relaxed/simple; bh=FfWDHgrwg207NW2mbzw9rQgubcbQ+dHnxbzMwQgJ250=; h=Date:From:To:Subject:Cc:In-Reply-To:References:MIME-Version: Message-ID:Content-Type; b=Nb3SzBTjWPeoB7OH+YdOXR2gZk90zjBTcudrS4Ztrl+Xo84FLLfzeFTnDy5O1bITRVVa30Bs4z+CfVOSzerBRmkz+ExgqFB4BrY9gMtCQ8Cpg75hyiIBGpk/qLJOrj8tTEw7sjXvvkOeNoYd2hSAl+tlW3fMzNvGOIJtLaM2RuE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=pSSPKzdQ; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=moFuA94E; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="pSSPKzdQ"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="moFuA94E" Date: Wed, 18 Mar 2026 08:41:50 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1773823311; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jjFqeqJxfOB/VFqOHv+xwhZSWiYZQmgoaYRDvS86GMU=; b=pSSPKzdQQ5D46EYG5PCkSoiVas+zNUEKRca7ZjLA/SQJ/1cN87DkODoxYS2gKiRNtxCXu8 nQDmz1lOaGBWbGK0vEOHGVfltBKHjzNYXfu7vihmY59df9w0RN+/298l1lelycGD4WPXFy cfT/BBelOajSrJQ3RfOFPoIQvGvLPg13g7jau0n4PCzceX070TPtfx3njg29cFYAT1djUO 3/lGCKn98KqOeqhZrVm/Ok9kuWanA7WPgMFwbr4rDMScDQe1De+vJfQKjHdTlBvdJMNrs2 DOf+fBniFTvX41JxZwvXCTTlw7NDTqk6RP1pQhQp4CorhOQKa6IlkJDiEgg/Tw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1773823311; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jjFqeqJxfOB/VFqOHv+xwhZSWiYZQmgoaYRDvS86GMU=; b=moFuA94EvYj93pi1hFrbsvzlt6Szfvtcqg4nvTdcaxOPI5vvsZrSYZ9PBsQwztCUadRboA kZhcaCj7t0bh5nAQ== From: "tip-bot2 for Josh Poimboeuf" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: objtool/core] objtool: Support Clang RAX DRAP sequence Cc: Arnd Bergmann , Josh Poimboeuf , "Peter Zijlstra (Intel)" , x86@kernel.org, linux-kernel@vger.kernel.org In-Reply-To: <3f33dc720b83dc6d3a2b7094f75a5c90a0b1cbc5.1773708458.git.jpoimboe@kernel.org> References: <3f33dc720b83dc6d3a2b7094f75a5c90a0b1cbc5.1773708458.git.jpoimboe@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <177382331061.1647592.8848444881469268316.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Precedence: bulk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The following commit has been merged into the objtool/core branch of tip: Commit-ID: 96f3b16a9de552538b810f773645d43f3b661b50 Gitweb: https://git.kernel.org/tip/96f3b16a9de552538b810f773645d43f3= b661b50 Author: Josh Poimboeuf AuthorDate: Mon, 16 Mar 2026 17:47:56 -07:00 Committer: Peter Zijlstra CommitterDate: Wed, 18 Mar 2026 09:38:52 +01:00 objtool: Support Clang RAX DRAP sequence Recent Clang can use RAX as a temporary register for the DRAP stack alignment sequence. Add support for that. Fixes the following warning: vmlinux.o: error: objtool: vmw_host_printf+0xd: unknown CFA base reg 0 Closes: https://lore.kernel.org/cefefdd1-7b82-406d-8ff4-e4b167e45ee6@app.fa= stmail.com Reported-by: Arnd Bergmann Signed-off-by: Josh Poimboeuf Signed-off-by: Peter Zijlstra (Intel) Link: https://patch.msgid.link/3f33dc720b83dc6d3a2b7094f75a5c90a0b1cbc5.177= 3708458.git.jpoimboe@kernel.org --- arch/x86/include/asm/orc_types.h | 1 + arch/x86/kernel/unwind_orc.c | 8 ++++++++ tools/arch/x86/include/asm/orc_types.h | 1 + tools/objtool/arch/x86/decode.c | 3 +++ tools/objtool/arch/x86/orc.c | 5 +++++ 5 files changed, 18 insertions(+) diff --git a/arch/x86/include/asm/orc_types.h b/arch/x86/include/asm/orc_ty= pes.h index e0125af..b3cc797 100644 --- a/arch/x86/include/asm/orc_types.h +++ b/arch/x86/include/asm/orc_types.h @@ -37,6 +37,7 @@ #define ORC_REG_R13 7 #define ORC_REG_BP_INDIRECT 8 #define ORC_REG_SP_INDIRECT 9 +#define ORC_REG_AX 10 #define ORC_REG_MAX 15 =20 #define ORC_TYPE_UNDEFINED 0 diff --git a/arch/x86/kernel/unwind_orc.c b/arch/x86/kernel/unwind_orc.c index f610fde..32f7e91 100644 --- a/arch/x86/kernel/unwind_orc.c +++ b/arch/x86/kernel/unwind_orc.c @@ -578,6 +578,14 @@ bool unwind_next_frame(struct unwind_state *state) } break; =20 + case ORC_REG_AX: + if (!get_reg(state, offsetof(struct pt_regs, ax), &sp)) { + orc_warn_current("missing AX value at %pB\n", + (void *)state->ip); + goto err; + } + break; + default: orc_warn("unknown SP base reg %d at %pB\n", orc->sp_reg, (void *)state->ip); diff --git a/tools/arch/x86/include/asm/orc_types.h b/tools/arch/x86/includ= e/asm/orc_types.h index e0125af..b3cc797 100644 --- a/tools/arch/x86/include/asm/orc_types.h +++ b/tools/arch/x86/include/asm/orc_types.h @@ -37,6 +37,7 @@ #define ORC_REG_R13 7 #define ORC_REG_BP_INDIRECT 8 #define ORC_REG_SP_INDIRECT 9 +#define ORC_REG_AX 10 #define ORC_REG_MAX 15 =20 #define ORC_TYPE_UNDEFINED 0 diff --git a/tools/objtool/arch/x86/decode.c b/tools/objtool/arch/x86/decod= e.c index 73bfea2..c3a10f3 100644 --- a/tools/objtool/arch/x86/decode.c +++ b/tools/objtool/arch/x86/decode.c @@ -912,6 +912,9 @@ int arch_decode_hint_reg(u8 sp_reg, int *base) case ORC_REG_DX: *base =3D CFI_DX; break; + case ORC_REG_AX: + *base =3D CFI_AX; + break; default: return -1; } diff --git a/tools/objtool/arch/x86/orc.c b/tools/objtool/arch/x86/orc.c index 735e150..5494bb4 100644 --- a/tools/objtool/arch/x86/orc.c +++ b/tools/objtool/arch/x86/orc.c @@ -70,6 +70,9 @@ int init_orc_entry(struct orc_entry *orc, struct cfi_stat= e *cfi, struct instruct case CFI_DX: orc->sp_reg =3D ORC_REG_DX; break; + case CFI_AX: + orc->sp_reg =3D ORC_REG_AX; + break; default: ERROR_INSN(insn, "unknown CFA base reg %d", cfi->cfa.base); return -1; @@ -138,6 +141,8 @@ static const char *reg_name(unsigned int reg) return "bp(ind)"; case ORC_REG_SP_INDIRECT: return "sp(ind)"; + case ORC_REG_AX: + return "ax"; default: return "?"; }