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 00467C369DC for ; Wed, 30 Apr 2025 00:24:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E0E7C6B0099; Tue, 29 Apr 2025 20:24:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DBFB96B009B; Tue, 29 Apr 2025 20:24:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B61E86B009D; Tue, 29 Apr 2025 20:24:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 7D3BF6B0099 for ; Tue, 29 Apr 2025 20:24:32 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 2B1901A1564 for ; Wed, 30 Apr 2025 00:16:51 +0000 (UTC) X-FDA: 83388794622.05.BC82CB0 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by imf06.hostedemail.com (Postfix) with ESMTP id 3365E180005 for ; Wed, 30 Apr 2025 00:16:49 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=LWjCicUc; dmarc=none; spf=pass (imf06.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=debug@rivosinc.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745972209; 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=2tvKQDIIBJb26wPDVIJoD2xzubcY8uay1NjKLxC4PFw=; b=SEFs/pBWtIsvQ+cujVFHdCs3NNBXQJJbHg2EPr0m3b8GrUxEkpELCetuiMzDw7rgpAAX6m iI7egxthLz8i0My3cKGkYEhrSoXYJv2OQ/NGq5LESY0n+hd8d8IuSwpFLs/3bTMr3YqzhB lGbcf6924oSnJ8/akYkXExSL4Mh8tHY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745972209; a=rsa-sha256; cv=none; b=4ZiQvRchtjoGko9nzLBJTul/+QqOEukkAhni9UJ1Kln/JlA/K97Eqxt8TSFaRE7n7ngFHA s4ITt0t7n+76+gcyLKzFhSGm6L9+Eavu9B+kWEoWC6rGbanOqCfo1u1E7Kw1eGoirH3Uol 0Bw+eY5OAN+bHIXNXin/T1qQaExa2rg= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=LWjCicUc; dmarc=none; spf=pass (imf06.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=debug@rivosinc.com Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-22c33e5013aso79520035ad.0 for ; Tue, 29 Apr 2025 17:16:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1745972208; x=1746577008; darn=kvack.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=2tvKQDIIBJb26wPDVIJoD2xzubcY8uay1NjKLxC4PFw=; b=LWjCicUcxGFKZYS0S6fJbUJguYtBpv8YxAHlJAU9bdjzG79/qGYm0huLyMLRAha7YJ ilASKwh70e/Pqcx6eoa9hJK/x4mrXK4Q6s1/YnU1BwQL1kaV9V6Ll/HQQCJsVx82ULnf ypNSqHexmE33RvZ4606Sl5vuFT6ZWW+YxvKk443YmRjYrN3YGHYWxZdjvATjpKZcr/E2 ZVn/MLZC0msS0ZJ4qilVpXR17cXrJFFUxeaf56noWE8HXctIPwCw52Ui2IAmSU8J8Mz8 F5/fhjJG1VAfX4CrHDl1HP7/bflwwAcodrigxVs9BA5GsgPdvG+npeyUtxyPK3dShhcv SRsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745972208; x=1746577008; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2tvKQDIIBJb26wPDVIJoD2xzubcY8uay1NjKLxC4PFw=; b=CDtKtcLvHL1Qa3Y2OLIXZPUmT/jqo/FfVZprBZC5eZREVKzPbjHkWTPx/tE493RtBb CXBM+rjfcpY9oGWXDncSC03eCP5i0BmrANlL2lMTXDLvUWiOwQSM0pntrUOaUmDaQIlc ZdwuzvYtR+qfhD8+27cd7vyucW/huiT4J+Fn4uBvMSWygD74y4FxYSv3P1+PQwgM+e06 Ja4TPari63mhG4qmUK/kiqYUMgEfAXR1PhNPGN6MHNakGoIyECkux7zrD3pLrn40aqQ2 bgx97B9K4R7KHHBxiam4Umyv7IeSvyOcHA/y8b8sA4KGrPAQ3xkmkC627UGH88D1qwUI sjSQ== X-Forwarded-Encrypted: i=1; AJvYcCUVCBrXhZBROUGRIQ6733tCr64BJZFILe2zcFn0UL+ZYzbUtv7Tml+OEDkcjNm3IkLHS1udlc0tug==@kvack.org X-Gm-Message-State: AOJu0YzL+XxMncW6oJFGaL624IbFw7p2StQdHUQX82hjrrvw4fJPuzGb S7G8OznLBaBuWDu3a+gMWy4ZuDC9jVxdl58jlRLRiqIG0yUFHpoF4lvXhZJp5/g= X-Gm-Gg: ASbGnctKN0I8/Vm7oH/U2GAYx+QDB5cluKsmp+0GBPgczTzFsX5Vp+lIFgGMPOrXf5S jCnBbQLkvV0x3gwREqgNQGkbVvOiAz0erUIE+BLPtHVG6pu3+81cGzxTTpzmr+qqTgIT1jvPgIs a27QVEvdq/LM2bEtAVmFRYJFN4Oxz8iobP7vTKXt1fEXENw1STJnsu2Ubd+vlknZTox3i4l9l6e sBr2hVDWYKANwIhn6J9EoWW4Ajtsy3Qk2b8MSpUuu6BdhL+EGeeAiaN7EMSa+awsrDnqQm/9mHu sh0c4XveCGhZ7U5W1q3AiO+jK1hrxoBfQhtHnpM/vGQ5iKpswVc= X-Google-Smtp-Source: AGHT+IHF0KduTnYGQrePlJEI6tXkimvw7nrR1QkHLBA+cw8lQBj1dgbc3Ah+yAI0hO6Ky9wQoxTVRg== X-Received: by 2002:a17:902:d4d1:b0:223:67ac:8929 with SMTP id d9443c01a7336-22df56bf231mr8352805ad.0.1745972208061; Tue, 29 Apr 2025 17:16:48 -0700 (PDT) Received: from debug.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db4d770d6sm109386035ad.17.2025.04.29.17.16.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Apr 2025 17:16:47 -0700 (PDT) From: Deepak Gupta Date: Tue, 29 Apr 2025 17:16:24 -0700 Subject: [PATCH v14 07/27] riscv mm: manufacture shadow stack pte MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250429-v5_user_cfi_series-v14-7-5239410d012a@rivosinc.com> References: <20250429-v5_user_cfi_series-v14-0-5239410d012a@rivosinc.com> In-Reply-To: <20250429-v5_user_cfi_series-v14-0-5239410d012a@rivosinc.com> To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Andrew Morton , "Liam R. Howlett" , Vlastimil Babka , Lorenzo Stoakes , Paul Walmsley , Palmer Dabbelt , Albert Ou , Conor Dooley , Rob Herring , Krzysztof Kozlowski , Arnd Bergmann , Christian Brauner , Peter Zijlstra , Oleg Nesterov , Eric Biederman , Kees Cook , Jonathan Corbet , Shuah Khan , Jann Horn , Conor Dooley , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org, alistair.francis@wdc.com, richard.henderson@linaro.org, jim.shu@sifive.com, andybnac@gmail.com, kito.cheng@sifive.com, charlie@rivosinc.com, atishp@rivosinc.com, evan@rivosinc.com, cleger@rivosinc.com, alexghiti@rivosinc.com, samitolvanen@google.com, broonie@kernel.org, rick.p.edgecombe@intel.com, rust-for-linux@vger.kernel.org, Zong Li , Deepak Gupta X-Mailer: b4 0.13.0 X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 3365E180005 X-Rspam-User: X-Stat-Signature: f3ecsqh5o4yj5kaprgh3jmjm78wymri1 X-HE-Tag: 1745972209-51596 X-HE-Meta: U2FsdGVkX1/ihPKykUyfTUYI7Bn191Evx6fgNz4d6xcwsU7joW+hK1UAi1Z4KQlQikK5W2kaOEDC0w67CwVJEfon0BWfZ44+33mDEoht3h0xWCAGJcil6KW2TOCgDzMzwnCxYP6w65cnczHdcGq0Stu/ATQU79Zyanj5CR9X8g20YghOM/blsJ71jlZaCDQEOCF+nFRGkkjHbR2Zl0a5pMP6ulLILIXvBtG0FssO/6grjrkazlSg9uvvk7ViQ/hHtw9kYqO5klLGKP3pxSpt4w+OIheJYv1+kIekJwV1Nf4Wcc+ugAeYK5SHKuhx1ebLXKwwW4AGDX6E9+ugl8Jg9XtVF3So1I2SOYxx/MuelGl9N+iXwJVrisNNE47Y6j4h+v/px8q7mMSMo4f4d3DQ3Bx/9lCp8lXtxY3L2CfXxfPP1NIVm4+5lQ0plwXdSqIWcR9RILV7RrBhqUlql9aci4Pe0ZZ0WvIpkCOKKsx9o+CocNlD2e4+/xg82CA6zUEyj9sPn3VYck1hppqupsiXSPZjcEnHnbAGumYcLnoqSeZYigRQ6paI2uAKFvSVZOdxGJPt01mZMKeRj+C5/O/In0SMabjBYqRmDY3ydGFYv/Hgr0ZGpHmw48N8WOzA8gFk86ekHniESsLminpWgbg3Os8GPc6mSIrHhFRtdhNSv6qjIh7c86A5OnSZ8s6gn/m0Fx3SCi22NfKXiWUI06pN8W2Y6jY5+LtdE39nmaoG/8z5Cfz91ufJblkWJ4G/tq6snygtsR6X03fI67SwU/s46PW7WX8tMp02K6bgmE2IAHtpvNzbjpIRBrpYIhRJj84/f42BROpG3/cjXRrjufNZLph8EXHcseXUo1vGqKHKV7Be2m1ac2/Tt9bvL3iqZEOTr60ontsZ5CyA1EVuxkg5tndk4UIsrKEaIfTYX7NPYAHedhO56ihcsIhaUS3GJFF5YtLY1zS2/Cf06xo0PrH 9uJCIqBU oqED1nM5BD+RzI0SSWwZvxEl3Aa57W9sBnQ0XrDjATEPlANpzskNV/qL85K6ez4KNtVTdeOX3U/+o8vAvTjYNLFYD2KXiJygt7CeA6udGz2Ixl6qrzc83RzavnPIPXxaikDUPi15Ybwy7i/j30VmtlMqfutorCnHzxitJa0LlIing3SPSgfB10QX79aSgHzG5CZeZv2MOl/lmIsE/avPmLeyuE/DDP1kns9Ct7crps+rwP2V57ujIoAAO1AREiYRUJCJjOqFyT8eAictM1NSSvqebuUc67bP+Hx1R5+z30vOa++88vwy/Ej/HSejuU50Qw4TO+WREgmvwN+5e3bSqVt54PJVs+cd+lBIpAyIUnlKdCxIWTr3r/ljvFiDpKGXmCJ3+vj8FjSYv3VTCV9tEeZ/e8XV8bc0lzZQ0OSveXFttMD740khhFtV720iw8O7lD8iyXiiucwozhqp7jYn3OPah81SK6zCg5fPb4+P1NckhHoHBc0HIa6P/8t+wP2/UMsYV2pPYDKHq0+g= 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: This patch implements creating shadow stack pte (on riscv). Creating shadow stack PTE on riscv means that clearing RWX and then setting W=1. Reviewed-by: Alexandre Ghiti Reviewed-by: Zong Li Signed-off-by: Deepak Gupta --- arch/riscv/include/asm/pgtable.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index dba257cc4e2d..f21c888f59eb 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -433,6 +433,11 @@ static inline pte_t pte_mkwrite_novma(pte_t pte) return __pte(pte_val(pte) | _PAGE_WRITE); } +static inline pte_t pte_mkwrite_shstk(pte_t pte) +{ + return __pte((pte_val(pte) & ~(_PAGE_LEAF)) | _PAGE_WRITE); +} + /* static inline pte_t pte_mkexec(pte_t pte) */ static inline pte_t pte_mkdirty(pte_t pte) @@ -778,6 +783,11 @@ static inline pmd_t pmd_mkwrite_novma(pmd_t pmd) return pte_pmd(pte_mkwrite_novma(pmd_pte(pmd))); } +static inline pmd_t pmd_mkwrite_shstk(pmd_t pte) +{ + return __pmd((pmd_val(pte) & ~(_PAGE_LEAF)) | _PAGE_WRITE); +} + static inline pmd_t pmd_wrprotect(pmd_t pmd) { return pte_pmd(pte_wrprotect(pmd_pte(pmd))); -- 2.43.0