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 D8A33D7832F for ; Mon, 2 Dec 2024 15:44:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4A98F6B0085; Mon, 2 Dec 2024 10:44:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 459B76B0088; Mon, 2 Dec 2024 10:44:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 347B16B0089; Mon, 2 Dec 2024 10:44:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 1316C6B0085 for ; Mon, 2 Dec 2024 10:44:28 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 84D461C8770 for ; Mon, 2 Dec 2024 15:44:27 +0000 (UTC) X-FDA: 82850440596.30.0116B2C Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf18.hostedemail.com (Postfix) with ESMTP id 6AC281C0011 for ; Mon, 2 Dec 2024 15:44:20 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=dOUNGcF+; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of bjorn@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=bjorn@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733154254; a=rsa-sha256; cv=none; b=EUXFVRmD8wtd0UVKDwpShdeDGoQSi8smcyHgFQ9cSX4AHk7mV/GNo3N2QJmag+K5vYFeNA 2PjUxhWI9fCKg/ly/KdzUCvb884HwUmhoBKM0sr4dwIVAmqV3Z13IGpIGQ/AU0amqLN7Y9 sRC9tsgtTNPwe1DE+UV/GBOmeAPmMAo= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=dOUNGcF+; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf18.hostedemail.com: domain of bjorn@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=bjorn@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733154254; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=qdD5fZfnAoO84ozp6aPwZFHUzyz42PW4+cpQYBOdRRs=; b=Y7bwHMYz9Vr+fQm9Lx7sPKRdd+MBvCUrguvWsQW9FaGKJTQncVYn4Zra943FrMzxKEjom6 +bhk5haxXga19Cwkg+x6myQDW60whnzHllmfJg2RZeTYAEc7OKD7IOkayiHEks5O0rDILc D6cCAOW7hSd8j2g4ofi1c7tGkMcElMU= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 92822A40E07; Mon, 2 Dec 2024 15:42:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0547AC4CED1; Mon, 2 Dec 2024 15:44:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1733154264; bh=DyHkmcoK/rPOrpLfO3N9/3ZQGexPIlejeLIDNVhReJo=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=dOUNGcF+mdb56CEPrlHyw39sLJ6Cpw3nwWs37XYq/5PCKaYPjmRFAKpj3U6FKB9qL ZDraECnj/6CO8AT1hvqhljlFzcSXwo+/r2HbYd3en7lr5Lrcs8vwB2jgVLcBaNGH+W 3sIwJ6ex6jiS97vYpH3a+BLXNZjMncZACtVsgaI/uKjzAkuH9GzrBSiGp6zofqafe7 yzC3rep21BA4jxNecS1y4iug1WbwCSwjoUGkjCQPhtOV/vi8PXhp0REkXSdFToGYm3 MgBjhLvwIAq7I9xcIh0TUkDGhodZMeTojoiqnpM4+ieY+9Az+7a6Pv9s9tzAqVi4BL 8d1jUMElH1/IQ== From: =?utf-8?B?QmrDtnJuIFTDtnBlbA==?= To: Celeste Liu , Oleg Nesterov , Paul Walmsley , Palmer Dabbelt , Albert Ou , Eric Biederman , Kees Cook Cc: Alexandre Ghiti , "Dmitry V. Levin" , Andrea Bolognani , Thomas Gleixner , Ron Economos , Felix Yan , Ruizhe Pan , Shiqi Zhang , Guo Ren , Yao Zi , Han Gao , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, stable@vger.kernel.org, Celeste Liu Subject: Re: [PATCH] riscv/ptrace: add new regset to get original a0 register In-Reply-To: <20241201-riscv-new-regset-v1-1-c83c58abcc7b@coelacanthus.name> References: <20241201-riscv-new-regset-v1-1-c83c58abcc7b@coelacanthus.name> Date: Mon, 02 Dec 2024 16:44:21 +0100 Message-ID: <87v7w22ip6.fsf@all.your.base.are.belong.to.us> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 6AC281C0011 X-Stat-Signature: fi8jcancirww7o5f7fhyk7y5f5n4en9e X-Rspam-User: X-HE-Tag: 1733154260-409654 X-HE-Meta: U2FsdGVkX1/fB2RgdOVXx2CrgAxYcUQO4/ez2QRyP5YjtekqwvQY+gH1p4ynLWwjHqNCj9nrwxEoAacR4dqSrIe+RCQNtOBJs2dYVesdDF89A+pBNuOB6tiSmKQCLRLkYQi/KG0MvYvql6qwS+y5lcqkPYu9MLS07mEKv1NADsURBKAXH7iCq9VSFYvLmEozovjjntyyK2p2JR9P06VTNVoAohCYzCxwBdCyx/hs70HGGgz/bAReYkkTnAMVmx22mzVMevxISZ52XAjm43x/CfCUpPRc65Zn8N3eVolGgJ8400odN0VjdwRX03ZH39kBEhG+J/8SnsmZSnNBu8s8J2Vo2sYNtcHHJm8YTsTWe+Btb3jUV3vJLDjPH/fSeAHeUtKbPrF0xTRyh18Acr0u6C3q+hRnz72vXwmBfaD9gt4qIJT1+oLWlup/IpRaaUUnBlucrmRhQVKhuoRarUuAPr9VYcVa0OAalzbbgDxiz3hQqA5tF5d7P8lFYbTyVLMIhafBukJFdhN4NQ9gKu3a1gSZmHY9zSb74xg2f+ATmEHaLRNvNejMJNvfE+byD7VqgTv/K6iir8B5sedFakT6tZnN28zkz4A1mMv38hwD6JT/2Lpmjj4iQgMbhYL8f68sD7zHgIYhua1DTXnP1l0JpiUob1j37p59NHj4bYx+LhC1qLMN8LX5RE1Gm/sbJg+xLflp1tISIS+JHOJMJ6UEm4enEr0ghJASn8No0KC97TpSwRFARHX5kwb5wI4cZsQRD2Ev6ne+RgJAr037IWV0e7Q0+/P22fUEDkGbSn6BSw2xu5Exyao3NRDTsIb7uqFM4fuMDk6QllXF5UG1DgiBRTETUw2yr06BxJvfnqsRw5BIp0NO1FO+4f/8CYwiktadwwsPX1ziKW5kxgBPnLi511JYm8m5FffW3EYbAa1GtuV5kwddks4vCFQdcNe/Nknj/KjH3qPmaPZi3KxxNHZ pICMj96k Nzj6R6aXzInYZMmo6zdhuR4VDQBQxYp5mbvy1B3aMz1iqaZcpC7XTjW+UsPdMb2bc4qej7B41vnUhKK7bMrXoIJxMADKJvF2An2XXKVXh9ylNoL7ZlOZeQM8lx2Nl8jPQ8+KcDxPU8Y+uA6F5KcWvijeEH9PKd1SXFgqQrfMdR/jcHPJv9Q3NHdLwBN4s4S4IdSMFXkJFQgkJ4VwJebhivkz4btQNyXpP6Zbaz0s2cW3JGOV95bY4uHBOYvzUSzTGGLaE8/iNs13uuXQnR1ExHqA5Xm91p7oi5cAf8AKoPVoVJu4WDi3Sg4cM+H6eK/+CN4o39RQ0GrEA3vSM330FwLO4wP/P9XolVxUYgx3c8ET47TU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Thanks for working on this! Celeste Liu writes: > The orig_a0 is missing in struct user_regs_struct of riscv, and there is > no way to add it without breaking UAPI. (See Link tag below) > > Like NT_ARM_SYSTEM_CALL do, we add a new regset name NT_RISCV_ORIG_A0 to > access original a0 register from userspace via ptrace API. > > Link: https://lore.kernel.org/all/59505464-c84a-403d-972f-d4b2055eeaac@gm= ail.com/ > Signed-off-by: Celeste Liu > --- > arch/riscv/kernel/ptrace.c | 33 +++++++++++++++++++++++++++++++++ > include/uapi/linux/elf.h | 1 + > 2 files changed, 34 insertions(+) > > diff --git a/arch/riscv/kernel/ptrace.c b/arch/riscv/kernel/ptrace.c > index ea67e9fb7a583683b922fe2c017ea61f3bc848db..faa46de9000376eb445a32d43= a40210d7b846844 100644 > --- a/arch/riscv/kernel/ptrace.c > +++ b/arch/riscv/kernel/ptrace.c > @@ -31,6 +31,7 @@ enum riscv_regset { > #ifdef CONFIG_RISCV_ISA_SUPM > REGSET_TAGGED_ADDR_CTRL, > #endif > + REGSET_ORIG_A0, > }; >=20=20 > static int riscv_gpr_get(struct task_struct *target, > @@ -184,6 +185,30 @@ static int tagged_addr_ctrl_set(struct task_struct *= target, > } > #endif >=20=20 > +static int riscv_orig_a0_get(struct task_struct *target, > + const struct user_regset *regset, > + struct membuf to) Use full 100 chars! > +{ > + return membuf_store(&to, task_pt_regs(target)->orig_a0); > +} > + > +static int riscv_orig_a0_set(struct task_struct *target, > + const struct user_regset *regset, > + unsigned int pos, unsigned int count, > + const void *kbuf, const void __user *ubuf) Dito! > +{ > + int orig_a0 =3D task_pt_regs(target)->orig_a0; 64b regs on RV64. > + int ret; > + > + ret =3D user_regset_copyin(&pos, &count, &kbuf, &ubuf, &orig_a0, 0, -1); > + if (ret) > + return ret; > + > + task_pt_regs(target)->orig_a0 =3D orig_a0; > + return ret; > +} > + > + Multiple blanks. > static const struct user_regset riscv_user_regset[] =3D { > [REGSET_X] =3D { > .core_note_type =3D NT_PRSTATUS, > @@ -224,6 +249,14 @@ static const struct user_regset riscv_user_regset[] = =3D { > .set =3D tagged_addr_ctrl_set, > }, > #endif > + [REGSET_ORIG_A0] =3D { > + .core_note_type =3D NT_RISCV_ORIG_A0, > + .n =3D 1, > + .size =3D sizeof(elf_greg_t), > + .align =3D sizeof(elf_greg_t), ...and sizeof(elf_greg_t) is 64b in RV64 -- mismatch above. Bj=C3=B6rn