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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 5DF01C433FE for ; Fri, 25 Mar 2022 08:04:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :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=A2YxOwRWV6sYm31lRwjxXkCARw1Ck9YZ1MgOUiJfmS4=; b=y27rnLO9r+SRZl ZqjgG2ouNARtbmjMTHEN9+L3j+eDBXRdi9wOteocL3F2Z2pf5FW0PhBHpB+rQIHAzSlGP3Oso22qw yp0VDFLJt5lEhBRTTsFRcCaHUwFp8dIxlO6osDNv6IpYoAHQoeX17SB/uRPhFVHQv+v1zLrTSGsIO SpBLUIghHWraPr94uSqXc1oTSIUxujcjYQP+xLnBAaSoLdvXHO12+3eQ1aLZuFK13qLJz7yN3Y8qd /PFXKBy8pRXvRMWK46gixo68tWn5Cd/9WBrgaISM+B0fN/L/so37XfsuAOHK7OI6OEvX6vduNMUrS CgMoLLK1WWIB7P8URBGQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nXeug-001OOo-Px; Fri, 25 Mar 2022 08:03:14 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nXeud-001OOH-D5 for linux-arm-kernel@lists.infradead.org; Fri, 25 Mar 2022 08:03:12 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 4DB8D61B80; Fri, 25 Mar 2022 08:03:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 540CEC340F1; Fri, 25 Mar 2022 08:03:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1648195389; bh=XhPNXBkTN/azrx7JmaG29alEIVkGdNQ2Y7b34rS6W8s=; h=From:To:Cc:Subject:Date:From; b=r9fsz9hsAOupwJWPFBUrkx+93yPNo6S1Fcyx0E0UIBsF3IEPS15YFcLCyTwft8/Pa bSW2cOsvuKFhdj1MSv9idXOnKh/xOkNpConQvAGuOGqkpSahbmGe/KFLXeLpPBqmE5 ihPJB7TfNUjgaD1+oqCU2aVHx+yHGxyK2Fl//d2Lg0yrLQj72rhbRuHraqa/PGI/3d bf2/cGL6KaZrUrr3JRKwUItt9xgou13JJ1V8odLAd/Pg10fCuLFPl3xb9U7hhzKSMO y/vpdZen9SDWrk0FIU+JNpNKmh6fJf+N4WfwYMuc+7M70qWuBLCv+9vaVE5xHsF6WX oTolh60ztxhng== From: Ard Biesheuvel To: linux-arm-kernel@lists.infradead.org Cc: Ard Biesheuvel , Masami Hiramatsu , Steven Rostedt , Nick Desaulniers , kernel test robot Subject: [PATCH] ARM: kretprobes: fix out-of-range literal issue in naked asm routine Date: Fri, 25 Mar 2022 09:03:02 +0100 Message-Id: <20220325080302.4018956-1-ardb@kernel.org> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1539; h=from:subject; bh=XhPNXBkTN/azrx7JmaG29alEIVkGdNQ2Y7b34rS6W8s=; b=owEB7QES/pANAwAKAcNPIjmS2Y8kAcsmYgBiPXc19dooQVe5GAa4Z0UOLFxw7i+zMV4IAfAgOh7F MCMyICKJAbMEAAEKAB0WIQT72WJ8QGnJQhU3VynDTyI5ktmPJAUCYj13NQAKCRDDTyI5ktmPJJV2C/ 9pv7yhLkZyQQ+aHSC3f1EBiWSFeSaeCQ2uP2WqkynD7ex3uJ/rfr/EzuO9q1gRQb4vupO1ahcPXZOm j7fI2oMk1humK00yLqeVDS3YhLNPDOLRr3Vbm1RMe9uAVhuVmjrRMlJt6YDN1AcZZ43/Dw19cvUL3h K9SXNP3tzRvogSCPQKbCshdHExGU1rrXu2haTsmjDRxqk7ZRk9EzNYOAJV9VzeS3r3pxaissLledzX 54vErXcpTryVv+3krYtXROA13HZReQFTDXOx9kqC7nYaHIfYl1x4k4oF53argUNuK+XMzSObG2Tr6d amAMQ8wj8di2OFG8C+r37n9XSTc4JIOzytrrBTAryVXcWT7Md5LQbAJHnAFroN1r/CskAPeXBfHX52 QzkL6qy3Y3iTYa4Yxfgx34GB1gr8rLoZnXthTvymhXrxn0GbBmyxzsIOcxRCH8v1JHveNMI8tGrOh7 pssySQaewSv5xTZgFmyK/UvXjKvWscN6f2HMRwuvI81dA= X-Developer-Key: i=ardb@kernel.org; a=openpgp; fpr=F43D03328115A198C90016883D200E9CA6329909 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220325_010311_528881_6624BCE1 X-CRM114-Status: GOOD ( 15.28 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org __kretprobe_trampoline is a naked C function implemented in asm, and the first thing it does is take its own address and record it in the frame record, so that a backtrace will properly traverse its stackframe. As it turns out, using 'LDR , =' notation is problematic here, as it relies on a literal pool to be emitted sufficiently close to the LDR instruction, and since the compiler is not aware of this need, this results in assembler errors in some cases. Since the address taken is guaranteed to be the address of the instruction itself, just use ADR instead. Cc: Masami Hiramatsu Cc: Steven Rostedt Cc: Nick Desaulniers Reported-by: kernel test robot Fixes: 7e9bf33b8124 ("ARM: kprobes: Make a frame pointer on __kretprobe_trampoline") Signed-off-by: Ard Biesheuvel --- arch/arm/probes/kprobes/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/probes/kprobes/core.c b/arch/arm/probes/kprobes/core.c index 9090c3a74dcc..068639a777c8 100644 --- a/arch/arm/probes/kprobes/core.c +++ b/arch/arm/probes/kprobes/core.c @@ -377,7 +377,7 @@ void __naked __kprobes __kretprobe_trampoline(void) { __asm__ __volatile__ ( #ifdef CONFIG_FRAME_POINTER - "ldr lr, =__kretprobe_trampoline \n\t" + "adr lr, . \n\t" /* __kretprobe_trampoline makes a framepointer on pt_regs. */ #ifdef CONFIG_CC_IS_CLANG "stmdb sp, {sp, lr, pc} \n\t" -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel