Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp6402309ybv; Wed, 12 Feb 2020 11:30:47 -0800 (PST) X-Google-Smtp-Source: APXvYqy0Q6UtamH8mBVWy7A2xyXxvFZ3OADfq8qsRywCGnuDpZnOqZZwWdtrKqbe5OOqhRwXYVnN X-Received: by 2002:a9d:7d9a:: with SMTP id j26mr10003404otn.21.1581535847314; Wed, 12 Feb 2020 11:30:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581535847; cv=none; d=google.com; s=arc-20160816; b=lDmfSGMy/6vPWfOd2/uOZ8DDaSYjNdaaxLHBm+tpPv21O6HpVQvCPqKBMmHbY0xOz/ WefapTn//sqSQy0vDXdaMWtgqmlP08P8FIq5YwWmvKPBC87+c4UmkPRVnL+n1wNXzCMG mpVz5ow/D8x51+PJtko5B2+dB7RBXQRQvSLDxCQhWeC1+QHXs+wQq3T7D8XIZ8LQ32yv lebSSSzq1vi2mdUmZxoA7J8lQPeJCFBhLX799duPocsESby6F9juTmuqivVe3Bo2hXUt B+ZDolxsl2H9EgccOLE/BpnIMi7Ju5TgII8z9pm3x/28MSFcDKdrrRjOd3BQdtrPujTI NavA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=SDhGiueWAi1WAt2p1fr56g7e72Ka7lQcgrMOBdezWSU=; b=ii0MwvvI1GhFV7lNzVBaKD511oCA4NdZtNot95Z14L1oPsQ79aglGMfdOKlfnlLmwi c8AGppmohgdQhuV86WccsesNAzbLXnEPIJwKnRTRHPPwddcsCSwCvXSk0q/dPaE/XUNj Ej14G0D3V4oGvwXvddBAryZ7XbTI8LEnqDWiAb8jAOa+gaPjehfVTp1X1bc4umhhHxeW BJmWBKd85Ci550Vhg4QxnEEHbfAiIkkdBiCYdAAro3R4I6ApSuRB/cpaSCHKzZOZUik2 aE9S9oYyi9+ZNkl3rgvfzGs+5K1vbhSNhAqC0pm/R/jqFQIk7l3IXis/xJILO2DExaVq 9lJw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 7si33752oij.29.2020.02.12.11.30.35; Wed, 12 Feb 2020 11:30:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729142AbgBLT30 (ORCPT + 99 others); Wed, 12 Feb 2020 14:29:26 -0500 Received: from foss.arm.com ([217.140.110.172]:37056 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729099AbgBLT3Z (ORCPT ); Wed, 12 Feb 2020 14:29:25 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5978F101E; Wed, 12 Feb 2020 11:29:25 -0800 (PST) Received: from localhost (unknown [10.37.6.21]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AEF1C3F68E; Wed, 12 Feb 2020 11:29:24 -0800 (PST) From: Mark Brown To: Catalin Marinas , Will Deacon Cc: Alexander Viro , Paul Elliott , Peter Zijlstra , Yu-cheng Yu , Amit Kachhap , Vincenzo Frascino , Marc Zyngier , Eugene Syromiatnikov , Szabolcs Nagy , "H . J . Lu " , Andrew Jones , Kees Cook , Arnd Bergmann , Jann Horn , Richard Henderson , =?UTF-8?q?Kristina=20Mart=C5=A1enko?= , Thomas Gleixner , Florian Weimer , Sudakshina Das , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-fsdevel@vger.kernel.org, Dave Martin , Mark Brown Subject: [PATCH v6 06/11] arm64: BTI: Decode BTYPE bits when printing PSTATE Date: Wed, 12 Feb 2020 19:29:01 +0000 Message-Id: <20200212192906.53366-7-broonie@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200212192906.53366-1-broonie@kernel.org> References: <20200212192906.53366-1-broonie@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Dave Martin The current code to print PSTATE symbolically when generating backtraces etc., does not include the BTYPE field used by Branch Target Identification. So, decode BTYPE and print it too. In the interests of human-readability, print the classes of BTI matched. The symbolic notation, BTYPE (PSTATE[11:10]) and permitted classes of subsequent instruction are: -- (BTYPE=0b00): any insn jc (BTYPE=0b01): BTI jc, BTI j, BTI c, PACIxSP -c (BTYPE=0b10): BTI jc, BTI c, PACIxSP j- (BTYPE=0b11): BTI jc, BTI j Signed-off-by: Dave Martin Signed-off-by: Mark Brown --- arch/arm64/kernel/process.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 7545a3f743c4..2e244a0d9d60 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -211,6 +211,15 @@ void machine_restart(char *cmd) while (1); } +#define bstr(suffix, str) [PSR_BTYPE_ ## suffix >> PSR_BTYPE_SHIFT] = str +static const char *const btypes[] = { + bstr(NONE, "--"), + bstr( JC, "jc"), + bstr( C, "-c"), + bstr( J , "j-") +}; +#undef bstr + static void print_pstate(struct pt_regs *regs) { u64 pstate = regs->pstate; @@ -229,7 +238,10 @@ static void print_pstate(struct pt_regs *regs) pstate & PSR_AA32_I_BIT ? 'I' : 'i', pstate & PSR_AA32_F_BIT ? 'F' : 'f'); } else { - printk("pstate: %08llx (%c%c%c%c %c%c%c%c %cPAN %cUAO)\n", + const char *btype_str = btypes[(pstate & PSR_BTYPE_MASK) >> + PSR_BTYPE_SHIFT]; + + printk("pstate: %08llx (%c%c%c%c %c%c%c%c %cPAN %cUAO BTYPE=%s)\n", pstate, pstate & PSR_N_BIT ? 'N' : 'n', pstate & PSR_Z_BIT ? 'Z' : 'z', @@ -240,7 +252,8 @@ static void print_pstate(struct pt_regs *regs) pstate & PSR_I_BIT ? 'I' : 'i', pstate & PSR_F_BIT ? 'F' : 'f', pstate & PSR_PAN_BIT ? '+' : '-', - pstate & PSR_UAO_BIT ? '+' : '-'); + pstate & PSR_UAO_BIT ? '+' : '-', + btype_str); } } -- 2.20.1