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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 21AF7C6FD1F for ; Wed, 20 Mar 2024 19:54:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 746A16B0085; Wed, 20 Mar 2024 15:54:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6F7026B0087; Wed, 20 Mar 2024 15:54:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5BFCD6B0089; Wed, 20 Mar 2024 15:54:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 49E676B0085 for ; Wed, 20 Mar 2024 15:54:22 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 08D5AA1A31 for ; Wed, 20 Mar 2024 19:54:22 +0000 (UTC) X-FDA: 81918469164.26.6DC3FA0 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [78.32.30.218]) by imf04.hostedemail.com (Postfix) with ESMTP id 46A0F40018 for ; Wed, 20 Mar 2024 19:54:19 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=armlinux.org.uk header.s=pandora-2019 header.b="zwIOU/N2"; dmarc=pass (policy=none) header.from=armlinux.org.uk; spf=none (imf04.hostedemail.com: domain of "linux+linux-mm=kvack.org@armlinux.org.uk" has no SPF policy when checking 78.32.30.218) smtp.mailfrom="linux+linux-mm=kvack.org@armlinux.org.uk" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710964459; h=from:from:sender:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JpvMIN5sLRmpewvvELoDaUedbJXpt4XMYlW/TmEfGUQ=; b=OrYrxUeGCBYBFqW0ZT8np6pr3JWLsuieaOo0sALzrTtsgbm1LdBg513p3XD2dNObwmE8+n lOA9c+GagvO2thAyN40TpCXcnzvswmrtNyTSacf0CZgJ1CXwFL8hRITp4WBy3iKLMVwzWo X7YkNz3QidrmiPTKFT0rTVRZopJP7kk= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=armlinux.org.uk header.s=pandora-2019 header.b="zwIOU/N2"; dmarc=pass (policy=none) header.from=armlinux.org.uk; spf=none (imf04.hostedemail.com: domain of "linux+linux-mm=kvack.org@armlinux.org.uk" has no SPF policy when checking 78.32.30.218) smtp.mailfrom="linux+linux-mm=kvack.org@armlinux.org.uk" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710964459; a=rsa-sha256; cv=none; b=BPbtLcbpIlvUdbptfjAZS0qE1elLL58+k6RKdAmd/GpUtbXne92vB5F1lgEnOq9jVNVHCP XqSCbrdszIjc01dUTsZtyh7PD6zLaeY1wxXfmU1Ja4FhU3dtZVC/bwCqVPSBG6Foiitxs6 xU/eq1Sn7DXVivn8z79AXMz0al/kFZU= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=JpvMIN5sLRmpewvvELoDaUedbJXpt4XMYlW/TmEfGUQ=; b=zwIOU/N2ME1TIeKU9BmL5bQgzW pnW2dx0WfF9yZeI84CfZ/Qdfz/bLGlrK+DxOUcGoWkfbrkHOKnJt9X46vVCPhpu+LnwG7/K01nBrb 0kEQGUrq9MZgohrf9pmDfLcAslQCwZMR9ehetlAJIrIpvb+wIfYlL743kA4vzPASsblIlF57F64XL rUCvoxS0GJbvSTW6ED3BpDsKIwaSGSJv57XNtTlB0Yce6SMKN58fZVlwnTafh3I0I/s1INk74AV1k mwbNIyd6OB7oKHs2jQtl3mkbbuDytE+O5gowXIRpgk1YdwEGdUzq1/dP9jnUD6RMYPH6e/MabCDB5 sWd9CfJA==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:35138) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rn1pm-0006qG-0E; Wed, 20 Mar 2024 19:42:46 +0000 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1rn1pk-0002w4-Le; Wed, 20 Mar 2024 19:42:44 +0000 Date: Wed, 20 Mar 2024 19:42:44 +0000 From: "Russell King (Oracle)" To: Jiangfeng Xiao Cc: linus.walleij@linaro.org, arnd@arndb.de, keescook@chromium.org, haibo.li@mediatek.com, angelogioacchino.delregno@collabora.com, amergnat@baylibre.com, akpm@linux-foundation.org, dave.hansen@linux.intel.com, douzhaolei@huawei.com, gustavoars@kernel.org, jpoimboe@kernel.org, kepler.chenxin@huawei.com, kirill.shutemov@linux.intel.com, linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, nixiaoming@huawei.com, peterz@infradead.org, wangbing6@huawei.com, wangfangpeng1@huawei.com, jannh@google.com, willy@infradead.org, David.Laight@aculab.com Subject: Re: [PATCH v3] ARM: unwind: improve unwinders for noreturn case Message-ID: References: <1709516385-7778-1-git-send-email-xiaojiangfeng@huawei.com> <1710949294-29287-1-git-send-email-xiaojiangfeng@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1710949294-29287-1-git-send-email-xiaojiangfeng@huawei.com> X-Rspamd-Queue-Id: 46A0F40018 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: rzzh749cmcueanaq15bpgzsi4agrrcm9 X-HE-Tag: 1710964458-398234 X-HE-Meta: U2FsdGVkX19BdxJfzJPX7bVzVfaDAjqESMM7JDkA1mCLlKpbKU0Qhhtrq4I8fMy66MHVsJ586snZqhty4M/6JMs+nXSqhZr8tA0y+B09+mSxdPro/hQlDod/osArREcFlMZHBiLB97fZX7elh/uycsL3yudlBLs/5V//O5M5/pTYm3MaNHdL+6YLF5x90R04uEus677xE4F3xAG5G6X2dcMsqa224PNQpMQphXLwFNRqWl+tVPOrLYvRFh/3Xdq+wLdF7NIWV0o61iReE6qJ/eDFxbRdUKw/TFdC6fKnh5ttLbxtMoVvsIdowvLCiFydY11bQsCI31cHWafUmv3l7oPia9vNUTW7XkvwjB7WRGNkX7FLIRCnHKbCzTIkc3y+stQ94OCeXDFOstBubjaT8j2XqP/PAsPVt6XkrzA14IHW/YbB64HxJmqWhchaY60/ks6YeCZ5Yx8yI6IFGaNzkytCEcSt3GLKkjLZz611/y9WbN/O/ZW2CEnkbf0SNlwvrlJtctsKjKX6AK9Twt/SssBUsy69RQ+tQ4Dz36bCnS7oJ/yeI5lkGXW6t6+t+nmsHu1k+VyFCgnrmbeRqKxRBMGl4sNFfjJjenzL97DOV4RPCNYCZVlYfLcYELqUkIsDWBm0kebG8Q+I92Z0JTn/F3FKclHltSaABGRsmJE8aOKUdjl8sKySKyYuX6Q2/ZXu82Xk5bD1d4NWLA7fUY7+tvZsvOTNwbPQi3e0J79PJzJgDCiUlqOHgl5lokWMKJz8yCYEueseMAjdH+uhNqbnEz8NFk1C4Jud8X1XvVIh8GOdGzjrnBZHMNmI1DPJ7ONo1IzPGpMlkHY1HhHAcDFbvD5lf+7OCuBU0uBuOFYMH0l1OpFte3P2Oe2jVDSr1yw2+af5sq9M9qY3iy2CGlONwSOk//FPsuPS7v7GVkHoAJRqC4IMsg/ngbza+B3dbT6+o/DITUiLMdXIkcGkaCr Dh8PAkge EScPBesoPyBT9XC76+lIcbivRoeNxJ+tf5htN+gD2eUumWSkdNQEwyzHYRjq9mydbEZkKt0RZmUhbOWzmIwYpF4GV+YizmC8W1MiB2DSKllpD7ddi0rFvoPKM/6dvuX6NAw056me31dTvOh3dfLSiMkiXUNBr53Q4kqsPoU4W7OEbyXPg18skwIrUb0yjGHlo1okoXelIdf4hYOMa+ul7FJWWtHARdF7s/Thuq5gv8feP0OVwaM/glX7jl5Aep9JpNsdvyUwsdX/wdpCAANSZqb3xyaX3pTMfpKymyihTZln1oj5/MGbhwGTY9+aJQp/4ZJmFfIR+sZt6F3LmCp9c4V9McErEx1l2rUeeX9Lu4/7m54tF2ITws81Jg7/Bg7RE0tBF X-Bogosity: Ham, tests=bogofilter, spamicity=0.004085, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Mar 20, 2024 at 11:41:34PM +0800, Jiangfeng Xiao wrote: > This is an off-by-one bug which is common in unwinders, > due to the fact that the address on the stack points > to the return address rather than the call address. > > So, for example, when the last instruction of a function > is a function call (e.g., to a noreturn function), it can > cause the unwinder to incorrectly try to unwind from > the function after the callee. > > foo: > ... > bl bar > ... end of function and thus next function ... > > which results in LR pointing into the next function. > > Fixed this by subtracting 1 from frmae->pc in the call frame > like ORC on x86 does. > > Refer to the unwind_next_frame function in the unwind_orc.c This came in while I was still replying to your previous reply, so I'm going to ignore this. Please allow at least 24 hours between postings, and please allow discussion to finish before posting a new version - give your reviewers adequate time to compose a reply bearing in mind that timezones might get in the way, but also making supper (as is the case in this instance) may cause several hour delay in reply. Thanks. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!