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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D7BD6C433F5 for ; Sat, 16 Oct 2021 21:20:10 +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 9C6D26103E for ; Sat, 16 Oct 2021 21:20:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 9C6D26103E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=armlinux.org.uk Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mfjB4KdiBmXOopmyP6USdpv8vzd++SgZXVvHnJvt4dw=; b=Bh2kYWKE7mBbzr LQSMXRN2RgxDaV3PeUFYEF7iise4iFm/GWBvw2x8U+J7PwSJJFbDx6bliPcRvojXCGU99kfdj5lll lmbaByzLj1lVHXf+zNKi6p01rdCnahMT3cu//jSlrpYp1tdHxZKffQ+iozGbyzNKePOZRic0dGQqF Uz5cvuh7vFgKaPDmdDW3oVCbG1xBzCrmKhLK5CnOH1ahXwjran9tIk3N8s8LG9yQskKCjbxmo8Cyw wz+bZP9B7zBtm4+eCZpA5Xkq0HcaZp+NZ+FEShD215CiKzZqhD7zSugGbb+BzdjaD7/Nu75TdF+Gm 0C8WU9tHh8SxnD7zIOWg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mbr4P-00BKjX-De; Sat, 16 Oct 2021 21:18:21 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mbr4L-00BKeT-Ra for linux-arm-kernel@lists.infradead.org; Sat, 16 Oct 2021 21:18:19 +0000 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-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To: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=WmWx3eQF29prrcm1i33F+svigfcuy8QUDaRai5h7Weo=; b=uZZZ/5qas/J5fErnQnRiDRdN0o WUgkPZeIZTYTHunGeYxis0iO3svEUlyxq4lT5/KhseXLqDDQNx4rrogMnUDeG3Q9RjUC2vc8iKHZw rA0CdEYNXhJ/9YPjZrdUzC11ijndnqPn/MzdjClRFsM1DmzWYowLAlQa077AqvH0NsGZ5iEk66Hbs kuEaU2DHWNROGRW+khQqd5yTj7gmae6Zp4ct7tcK+ZndK66r/HhCbb1GcUshmeYaxazh5yk/EZT9B 4caf0wFgv7eUpSxaf8mZx7Y4FCKqTwN+9PBesISzEim+Oow2W7Vi3IpJmEWeUdgGcT2nfS3J2QbWP ZhAcuB/w==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:55150) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mbr29-0003eK-D7; Sat, 16 Oct 2021 22:16:01 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1mbr25-0004MH-Pm; Sat, 16 Oct 2021 22:15:57 +0100 Date: Sat, 16 Oct 2021 22:15:57 +0100 From: "Russell King (Oracle)" To: Masami Hiramatsu Cc: Steven Rostedt , "Naveen N . Rao" , Ananth N Mavinakayanahalli , Ingo Molnar , linux-kernel@vger.kernel.org, Sven Schnelle , Catalin Marinas , Will Deacon , Nathan Chancellor , Nick Desaulniers , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 08/10] ARM: kprobes: Make a frame pointer on __kretprobe_trampoline Message-ID: References: <163430224341.459050.2369208860773018092.stgit@devnote2> <163430231601.459050.8640625926942332950.stgit@devnote2> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <163430231601.459050.8640625926942332950.stgit@devnote2> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211016_141817_923920_D8803A6F X-CRM114-Status: GOOD ( 37.48 ) 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="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBPY3QgMTUsIDIwMjEgYXQgMDk6NTE6NTZQTSArMDkwMCwgTWFzYW1pIEhpcmFtYXRz dSB3cm90ZToKPiBDdXJyZW50bHkga3JldHByb2JlIG9uIEFSTSBqdXN0IGZpbGxzIHIwLXIxMSBv ZiBwdF9yZWdzLCBidXQKPiB0aGF0IGlzIG5vdCBlbm91Z2ggZm9yIHRoZSBzdGFja3RyYWNlLiBN b3Jlb3ZlciwgZnJvbSB0aGUgdXNlcgo+IGtyZXRwcm9iZSBoYW5kbGVyLCBzdGFja3RyYWNlIG5l ZWRzIGEgZnJhbWUgcG9pbnRlciBvbiB0aGUKPiBfX2tyZXRwcm9iZV90cmFtcG9saW5lLgo+IAo+ IFRoaXMgYWRkcyBhIGZyYW1lIHBvaW50ZXIgb24gX19rcmV0cHJvYmVfdHJhbXBvbGluZSBmb3Ig Ym90aCBnY2MKPiBhbmQgY2xhbmcgY2FzZS4gVGhvc2UgaGF2ZSBkaWZmZXJlbnQgZnJhbWUgcG9p bnRlciBzbyB3ZSBuZWVkCj4gZGlmZmVyZW50IGJ1dCBzaW1pbGFyIHN0YWNrIG9uIHB0X3JlZ3Mu Cj4gCj4gR2NjIG1ha2VzIHRoZSBmcmFtZSBwb2ludGVyIChmcCkgdG8gcG9pbnQgdGhlICdwYycg YWRkcmVzcyBvZgo+IHRoZSB7ZnAsIGlwICg9c3ApLCBsciwgcGN9LCB0aGlzIG1lYW5zIHtyMTEs IHIxMywgcjE0LCByMTV9Lgo+IFRodXMgaWYgd2Ugc2F2ZSB0aGUgcjExIChmcCkgb24gcHRfcmVn cy0+cjEyLCB3ZSBjYW4gbWFrZSB0aGlzCj4gc2V0IG9uIHRoZSBlbmQgb2YgcHRfcmVncy4KPiAK PiBPbiB0aGUgb3RoZXIgaGFuZCwgQ2xhbmcgbWFrZXMgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcG9p bnQgdGhlCj4gJ2ZwJyBhZGRyZXNzIG9mIHtmcCwgbHJ9IG9uIHN0YWNrLiBTaW5jZSB0aGUgbmV4 dCB0byB0aGUKPiBwdF9yZWdzLT5sciBpcyBwdF9yZWdzLT5zcCwgSSByZXVzZWQgdGhlIHBhaXIg b2YgcHRfcmVncy0+ZnAKPiBhbmQgcHRfcmVncy0+aXAuCj4gU28gdGhpcyBzdG9yZXMgdGhlICds cicgb24gcHRfcmVncy0+aXAgYW5kIG1ha2UgdGhlIGZwIHRvIHBvaW50Cj4gcHRfcmVncy0+ZnAu Cj4gCj4gRm9yIGJvdGggY2FzZXMsIHNhdmVzIF9fa3JldHByb2JlX3RyYW1wb2xpbmUgYWRkcmVz cyB0bwo+IHB0X3JlZ3MtPmxyLCBzbyB0aGF0IHRoZSBzdGFjayB0cmFjZXIgY2FuIGlkZW50aWZ5 IHRoaXMgZnJhbWUKPiBwb2ludGVyIGhhcyBiZWVuIG1hZGUgYnkgdGhlIF9fa3JldHByb2JlX3Ry YW1wb2xpbmUuCj4gCj4gTm90ZSB0aGF0IGlmIHRoZSBDT05GSUdfRlJBTUVfUE9JTlRFUiBpcyBu b3Qgc2V0LCB0aGlzIGtlZXBzCj4gZnAgYXMgaXMuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFzYW1p IEhpcmFtYXRzdSA8bWhpcmFtYXRAa2VybmVsLm9yZz4KPiBSZXZpZXdlZC1ieTogTmljayBEZXNh dWxuaWVycyA8bmRlc2F1bG5pZXJzQGdvb2dsZS5jb20+Cj4gLS0tCj4gIGFyY2gvYXJtL3Byb2Jl cy9rcHJvYmVzL2NvcmUuYyB8ICAgMjkgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAg MSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL3Byb2Jlcy9rcHJvYmVzL2NvcmUuYyBiL2FyY2gvYXJtL3Byb2Jl cy9rcHJvYmVzL2NvcmUuYwo+IGluZGV4IDk1ZjIzYjQ3YmEyNy4uN2NiZDY1YTIyNzY5IDEwMDY0 NAo+IC0tLSBhL2FyY2gvYXJtL3Byb2Jlcy9rcHJvYmVzL2NvcmUuYwo+ICsrKyBiL2FyY2gvYXJt L3Byb2Jlcy9rcHJvYmVzL2NvcmUuYwo+IEBAIC0zNjgsMTYgKzM2OCwzNSBAQCBpbnQgX19rcHJv YmVzIGtwcm9iZV9leGNlcHRpb25zX25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnNlbGYs Cj4gIC8qCj4gICAqIFdoZW4gYSByZXRwcm9iZWQgZnVuY3Rpb24gcmV0dXJucywgdHJhbXBvbGlu ZV9oYW5kbGVyKCkgaXMgY2FsbGVkLAo+ICAgKiBjYWxsaW5nIHRoZSBrcmV0cHJvYmUncyBoYW5k bGVyLiBXZSBjb25zdHJ1Y3QgYSBzdHJ1Y3QgcHRfcmVncyB0bwo+IC0gKiBnaXZlIGEgdmlldyBv ZiByZWdpc3RlcnMgcjAtcjExIHRvIHRoZSB1c2VyIHJldHVybi1oYW5kbGVyLiAgVGhpcyBpcwo+ IC0gKiBub3QgYSBjb21wbGV0ZSBwdF9yZWdzIHN0cnVjdHVyZSwgYnV0IHRoYXQgc2hvdWxkIGJl IHBsZW50eSBzdWZmaWNpZW50Cj4gLSAqIGZvciBrcmV0cHJvYmUgaGFuZGxlcnMgd2hpY2ggc2hv dWxkIG5vcm1hbGx5IGJlIGludGVyZXN0ZWQgaW4gcjAgb25seQo+IC0gKiBhbnl3YXkuCj4gKyAq IGdpdmUgYSB2aWV3IG9mIHJlZ2lzdGVycyByMC1yMTEsIHNwLCBsciwgYW5kIHBjIHRvIHRoZSB1 c2VyCj4gKyAqIHJldHVybi1oYW5kbGVyLiBUaGlzIGlzIG5vdCBhIGNvbXBsZXRlIHB0X3JlZ3Mg c3RydWN0dXJlLCBidXQgdGhhdAo+ICsgKiBzaG91bGQgYmUgZW5vdWdoIGZvciBzdGFja3RyYWNl IGZyb20gdGhlIHJldHVybiBoYW5kbGVyIHdpdGggb3IKPiArICogd2l0aG91dCBwdF9yZWdzLgo+ ICAgKi8KPiAgdm9pZCBfX25ha2VkIF9fa3Byb2JlcyBfX2tyZXRwcm9iZV90cmFtcG9saW5lKHZv aWQpCj4gIHsKPiAgCV9fYXNtX18gX192b2xhdGlsZV9fICgKPiAtCQkic3ViCXNwLCBzcCwgIzE2 CQlcblx0Igo+ICsJCSJsZHIJbHIsID1fX2tyZXRwcm9iZV90cmFtcG9saW5lCVxuXHQiCj4gKwkJ InN0bWRiCXNwISwge3NwLCBsciwgcGN9CVxuXHQiCgpJIHRoaW5rIHlvdSByZWFsbHkgZG8gbm90 IHdhbnQgdG8gZG8gdGhhdC4KCkZyb20gRERJMDQwNkM6CgoiQVJNIGRlcHJlY2F0ZXMgdGhlIHVz ZSBvZiBpbnN0cnVjdGlvbnMgd2l0aCB0aGUgYmFzZSByZWdpc3RlciBpbiB0aGUKbGlzdCBhbmQg ISBzcGVjaWZpZWQuIElmIHRoZSBiYXNlIHJlZ2lzdGVyIGlzIG5vdCB0aGUgbG93ZXN0LW51bWJl cmVkCnJlZ2lzdGVyIGluIHRoZSBsaXN0LCBzdWNoIGFuIGluc3RydWN0aW9uIHN0b3JlcyBhbiBV TktOT1dOIHZhbHVlIGZvcgp0aGUgYmFzZSByZWdpc3Rlci4iCgpIb3dldmVyLCBpdCBkb2Vzbid0 IHNheSB3aGF0IHZhbHVlIGlzIHN0b3JlZCBpZiB0aGUgYmFzZSByZWdpc3RlciBpcwp0aGUgbG93 ZXN0LW51bWJlcmVkIHJlZ2lzdGVyIGluIHRoZSBsaXN0LiBUaGUgcHNldWRvY29kZSBnaXZlbiBz aG93cwp0aGF0IGl0IGlzIHRoZSBvcmlnaW5hbCB2YWx1ZS4gSG93ZXZlciwgRERJMDEwMEU6Cgoi T3BlcmFuZCByZXN0cmljdGlvbnMKICBJZiA8Um4+IGlzIHNwZWNpZmllZCBhcyA8cmVnaXN0ZXJz PiBhbmQgYmFzZSByZWdpc3RlciB3cml0ZWJhY2sgaXMKICBzcGVjaWZpZWQ6CiAg4oCiIElmIDxS bj4gaXMgdGhlIGxvd2VzdC1udW1iZXJlZCByZWdpc3RlciBzcGVjaWZpZWQgaW4KICAgIDxyZWdp c3Rlcl9saXN0PiwgdGhlIG9yaWdpbmFsIHZhbHVlIG9mIDxSbj4gaXMgc3RvcmVkLgogIOKAoiBP dGhlcndpc2UsIHRoZSBzdG9yZWQgdmFsdWUgb2YgPFJuPiBpcyBVTlBSRURJQ1RBQkxFLiIKClNv IEkgZ3Vlc3MgaXQgbWlnaHQgYmUgb2theS4uLiBidXQgaXQgc2VlbXMgYSBiaXQgZG9kZ3kgdG8g cmVseSBvbgp0aGlzIGJlaGF2aW91ci4KCj4gKyNpZmRlZiBDT05GSUdfRlJBTUVfUE9JTlRFUgo+ ICsJLyogX19rcmV0cHJvYmVfdHJhbXBvbGluZSBtYWtlcyBhIGZyYW1lcG9pbnRlciBvbiBwdF9y ZWdzLiAqLwo+ICsjaWZkZWYgQ09ORklHX0NDX0lTX0NMQU5HCj4gKwkJLyogSW4gY2xhbmcgY2Fz ZSwgcHRfcmVncy0+aXAgPSBsci4gKi8KPiArCQkic3RtZGIJc3AhLCB7bHJ9CQlcblx0Igo+ICAJ CSJzdG1kYglzcCEsIHtyMCAtIHIxMX0JCVxuXHQiCgpUaGlzIGNhbiBiZSBzaW1wbGlmaWVkIHRv OgoJCSJzdG1kYglzcCEsIHtyMCAtIHIxMSwgbHJ9CVxuXHQiCgpBbHNvLCBub3RlIHRoZSB2YWx1 ZSB3ZSBzdG9yZSBmb3IgImZwIiBpcyBfX2tyZXRwcm9iZV90cmFtcG9saW5lLgoKPiArCQkvKiBm cCBwb2ludHMgcmVncy0+cjExIChmcCkgKi8KPiArCQkiYWRkCWZwLCBzcCwJIzQ0CQlcblx0Igo+ ICsjZWxzZSAvKiAhQ09ORklHX0NDX0lTX0NMQU5HICovCj4gKwkJLyogSW4gZ2NjIGNhc2UsIHB0 X3JlZ3MtPmlwID0gZnAuICovCj4gKwkJInN0bWRiCXNwISwge2ZwfQkJXG5cdCIKPiArCQkic3Rt ZGIJc3AhLCB7cjAgLSByMTF9CQlcblx0IgoKVGhpcyBjYW4gYmUgc2ltcGxpZmllZCB0bzoKCQki c3RtZGIJc3AhLCB7cjAgLSByMTJ9CQlcblx0IgoKc2luY2UgZnAgaXMgcjEyLgoKLS0gClJNSydz IFBhdGNoIHN5c3RlbTogaHR0cHM6Ly93d3cuYXJtbGludXgub3JnLnVrL2RldmVsb3Blci9wYXRj aGVzLwpGVFRQIGlzIGhlcmUhIDQwTWJwcyBkb3duIDEwTWJwcyB1cC4gRGVjZW50IGNvbm5lY3Rp dml0eSBhdCBsYXN0IQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo= 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 066DDC433EF for ; Sat, 16 Oct 2021 21:16:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C308361181 for ; Sat, 16 Oct 2021 21:16:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244667AbhJPVSU (ORCPT ); Sat, 16 Oct 2021 17:18:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40164 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244660AbhJPVSS (ORCPT ); Sat, 16 Oct 2021 17:18:18 -0400 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:32c8:5054:ff:fe00:142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 078D8C061765 for ; Sat, 16 Oct 2021 14:16:09 -0700 (PDT) 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-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To: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=WmWx3eQF29prrcm1i33F+svigfcuy8QUDaRai5h7Weo=; b=uZZZ/5qas/J5fErnQnRiDRdN0o WUgkPZeIZTYTHunGeYxis0iO3svEUlyxq4lT5/KhseXLqDDQNx4rrogMnUDeG3Q9RjUC2vc8iKHZw rA0CdEYNXhJ/9YPjZrdUzC11ijndnqPn/MzdjClRFsM1DmzWYowLAlQa077AqvH0NsGZ5iEk66Hbs kuEaU2DHWNROGRW+khQqd5yTj7gmae6Zp4ct7tcK+ZndK66r/HhCbb1GcUshmeYaxazh5yk/EZT9B 4caf0wFgv7eUpSxaf8mZx7Y4FCKqTwN+9PBesISzEim+Oow2W7Vi3IpJmEWeUdgGcT2nfS3J2QbWP ZhAcuB/w==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:55150) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mbr29-0003eK-D7; Sat, 16 Oct 2021 22:16:01 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1mbr25-0004MH-Pm; Sat, 16 Oct 2021 22:15:57 +0100 Date: Sat, 16 Oct 2021 22:15:57 +0100 From: "Russell King (Oracle)" To: Masami Hiramatsu Cc: Steven Rostedt , "Naveen N . Rao" , Ananth N Mavinakayanahalli , Ingo Molnar , linux-kernel@vger.kernel.org, Sven Schnelle , Catalin Marinas , Will Deacon , Nathan Chancellor , Nick Desaulniers , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 08/10] ARM: kprobes: Make a frame pointer on __kretprobe_trampoline Message-ID: References: <163430224341.459050.2369208860773018092.stgit@devnote2> <163430231601.459050.8640625926942332950.stgit@devnote2> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <163430231601.459050.8640625926942332950.stgit@devnote2> Sender: Russell King (Oracle) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 15, 2021 at 09:51:56PM +0900, Masami Hiramatsu wrote: > Currently kretprobe on ARM just fills r0-r11 of pt_regs, but > that is not enough for the stacktrace. Moreover, from the user > kretprobe handler, stacktrace needs a frame pointer on the > __kretprobe_trampoline. > > This adds a frame pointer on __kretprobe_trampoline for both gcc > and clang case. Those have different frame pointer so we need > different but similar stack on pt_regs. > > Gcc makes the frame pointer (fp) to point the 'pc' address of > the {fp, ip (=sp), lr, pc}, this means {r11, r13, r14, r15}. > Thus if we save the r11 (fp) on pt_regs->r12, we can make this > set on the end of pt_regs. > > On the other hand, Clang makes the frame pointer to point the > 'fp' address of {fp, lr} on stack. Since the next to the > pt_regs->lr is pt_regs->sp, I reused the pair of pt_regs->fp > and pt_regs->ip. > So this stores the 'lr' on pt_regs->ip and make the fp to point > pt_regs->fp. > > For both cases, saves __kretprobe_trampoline address to > pt_regs->lr, so that the stack tracer can identify this frame > pointer has been made by the __kretprobe_trampoline. > > Note that if the CONFIG_FRAME_POINTER is not set, this keeps > fp as is. > > Signed-off-by: Masami Hiramatsu > Reviewed-by: Nick Desaulniers > --- > arch/arm/probes/kprobes/core.c | 29 ++++++++++++++++++++++++----- > 1 file changed, 24 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/probes/kprobes/core.c b/arch/arm/probes/kprobes/core.c > index 95f23b47ba27..7cbd65a22769 100644 > --- a/arch/arm/probes/kprobes/core.c > +++ b/arch/arm/probes/kprobes/core.c > @@ -368,16 +368,35 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self, > /* > * When a retprobed function returns, trampoline_handler() is called, > * calling the kretprobe's handler. We construct a struct pt_regs to > - * give a view of registers r0-r11 to the user return-handler. This is > - * not a complete pt_regs structure, but that should be plenty sufficient > - * for kretprobe handlers which should normally be interested in r0 only > - * anyway. > + * give a view of registers r0-r11, sp, lr, and pc to the user > + * return-handler. This is not a complete pt_regs structure, but that > + * should be enough for stacktrace from the return handler with or > + * without pt_regs. > */ > void __naked __kprobes __kretprobe_trampoline(void) > { > __asm__ __volatile__ ( > - "sub sp, sp, #16 \n\t" > + "ldr lr, =__kretprobe_trampoline \n\t" > + "stmdb sp!, {sp, lr, pc} \n\t" I think you really do not want to do that. >From DDI0406C: "ARM deprecates the use of instructions with the base register in the list and ! specified. If the base register is not the lowest-numbered register in the list, such an instruction stores an UNKNOWN value for the base register." However, it doesn't say what value is stored if the base register is the lowest-numbered register in the list. The pseudocode given shows that it is the original value. However, DDI0100E: "Operand restrictions If is specified as and base register writeback is specified: • If is the lowest-numbered register specified in , the original value of is stored. • Otherwise, the stored value of is UNPREDICTABLE." So I guess it might be okay... but it seems a bit dodgy to rely on this behaviour. > +#ifdef CONFIG_FRAME_POINTER > + /* __kretprobe_trampoline makes a framepointer on pt_regs. */ > +#ifdef CONFIG_CC_IS_CLANG > + /* In clang case, pt_regs->ip = lr. */ > + "stmdb sp!, {lr} \n\t" > "stmdb sp!, {r0 - r11} \n\t" This can be simplified to: "stmdb sp!, {r0 - r11, lr} \n\t" Also, note the value we store for "fp" is __kretprobe_trampoline. > + /* fp points regs->r11 (fp) */ > + "add fp, sp, #44 \n\t" > +#else /* !CONFIG_CC_IS_CLANG */ > + /* In gcc case, pt_regs->ip = fp. */ > + "stmdb sp!, {fp} \n\t" > + "stmdb sp!, {r0 - r11} \n\t" This can be simplified to: "stmdb sp!, {r0 - r12} \n\t" since fp is r12. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!