From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 40B91C4332B for ; Thu, 19 Mar 2020 11:15:57 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F3DFF20739 for ; Thu, 19 Mar 2020 11:15:56 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="o+6IGteG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F3DFF20739 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=Tr4Z1wmz7wbv6urO/kF8sKdkmNHt17xmCoxVhoD1Rq8=; b=o+6 IGteGeQlULLcDEd+ww+m8yGtg1wqczQoyElme+jgsgqBg24Lfnl864aH9z3khORopBvSgvW0Jpk3S JqC9v20GffCXLMREotn99R7QssEvY2O3uFh3QjQ+0Mh2XgRDqhj5VNbtR6m6lyKKD60uyK5IOTFkP WDvh31l02MPPr283sPQbnAWDLcc4hepEHHf+QEvQatisIl3g1o/dFaBJ9+RF+BedLKMR8/ssXLeHd wLbzI1bpO1qlRD7HTQzzpEXhiH6sunOS8m5d2Wb89vY+8c4H8j5ENLmstXpK7Mm/nUc2yG4HlcEjL HywpRclQRmHf5srexIMAcQt+Qk1SbVw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jEt9W-0001yS-VP; Thu, 19 Mar 2020 11:15:54 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jEt97-0001N6-ME; Thu, 19 Mar 2020 11:15:31 +0000 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 C9FE3FEC; Thu, 19 Mar 2020 04:15:26 -0700 (PDT) Received: from a075553-lin.blr.arm.com (unknown [10.162.16.46]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 275233FA45; Thu, 19 Mar 2020 00:39:32 -0700 (PDT) From: Amit Daniel Kachhap To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/2] arm64/crash_core: Export KERNELPACMASK in vmcoreinfo Date: Thu, 19 Mar 2020 13:09:10 +0530 Message-Id: <1584603551-23845-1-git-send-email-amit.kachhap@arm.com> X-Mailer: git-send-email 2.7.4 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200319_041529_767672_64FF72F4 X-CRM114-Status: GOOD ( 10.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Catalin Marinas , Bhupesh Sharma , kexec@lists.infradead.org, linux-kernel@vger.kernel.org, James Morse , Amit Daniel Kachhap , Dave Anderson , Vincenzo Frascino , Will Deacon MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org ARMv8.3-A mandated feature Pointer Authentication may needs this change. If this feature is enabled in the kernel and the hardware supports address authentication then the return addresses are signed and stored in the stack to prevent ROP kind of attack. User tools like "crash" may need the kernel pac mask information to generate the correct return address for stacktrace purpose. This patch is similar to commit ec6e822d1a22d0eef ("arm64: expose user PAC bit positions via ptrace") which exposes pac mask information via ptrace interfaces. Cc: Catalin Marinas Cc: Will Deacon Cc: Mark Rutland Cc: James Morse Cc: Dave Anderson Signed-off-by: Amit Daniel Kachhap --- An implementation of this field used by crash tool can be found here [1]. The patches in this series are based on in-kernel Pointer Authentication patches present for-next tree [2]. [1]: http://linux-arm.org/git?p=crash-ak.git;a=commit;h=1775c6c33bed9269964719b90064b43a24ce97a5 [2]: git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/kernel-ptrauth arch/arm64/include/asm/compiler.h | 3 +++ arch/arm64/kernel/crash_core.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/arch/arm64/include/asm/compiler.h b/arch/arm64/include/asm/compiler.h index eece20d..32d5900 100644 --- a/arch/arm64/include/asm/compiler.h +++ b/arch/arm64/include/asm/compiler.h @@ -19,6 +19,9 @@ #define __builtin_return_address(val) \ (void *)(ptrauth_clear_pac((unsigned long)__builtin_return_address(val))) +#else /* !CONFIG_ARM64_PTR_AUTH */ +#define ptrauth_user_pac_mask() 0ULL +#define ptrauth_kernel_pac_mask() 0ULL #endif /* CONFIG_ARM64_PTR_AUTH */ #endif /* __ASM_COMPILER_H */ diff --git a/arch/arm64/kernel/crash_core.c b/arch/arm64/kernel/crash_core.c index ca4c3e1..25cf2ce 100644 --- a/arch/arm64/kernel/crash_core.c +++ b/arch/arm64/kernel/crash_core.c @@ -6,6 +6,7 @@ #include #include +#include void arch_crash_save_vmcoreinfo(void) { @@ -16,4 +17,7 @@ void arch_crash_save_vmcoreinfo(void) vmcoreinfo_append_str("NUMBER(PHYS_OFFSET)=0x%llx\n", PHYS_OFFSET); vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset()); + vmcoreinfo_append_str("NUMBER(KERNELPACMASK)=0x%llx\n", + system_supports_address_auth() ? + ptrauth_kernel_pac_mask() : 0); } -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel