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 3B832C54ED0 for ; Fri, 23 May 2025 05:31:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CDD3B6B009B; Fri, 23 May 2025 01:31:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CB4D96B009D; Fri, 23 May 2025 01:31:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD0796B009B; Fri, 23 May 2025 01:31:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 9B1936B009B for ; Fri, 23 May 2025 01:31:39 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 26F9C1213FE for ; Fri, 23 May 2025 05:31:39 +0000 (UTC) X-FDA: 83473050318.18.EB142B3 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) by imf20.hostedemail.com (Postfix) with ESMTP id 3DA871C0005 for ; Fri, 23 May 2025 05:31:37 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=Yr+zqi1x; spf=pass (imf20.hostedemail.com: domain of debug@rivosinc.com designates 209.85.210.177 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747978297; 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=n83qRz9mood5HPR5s1S2MPkA7pXc2SaY9rnWZhXzlpkLx8NpMRyG5yBZPycuN8ElsZzt1k 8LhFFf8ckgartG5gdgFQ0Ve5xgB7jnFup9LU7zOgL7ymzesa3lsuWqB2As3mabxTECeCNd U5IMhsyCdknHZ0c62zDdzyHQx4jF8vU= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=Yr+zqi1x; spf=pass (imf20.hostedemail.com: domain of debug@rivosinc.com designates 209.85.210.177 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747978297; a=rsa-sha256; cv=none; b=HxTpKNW1NcKL2N7hcnVtj8d4YLt09aWesgMarsGJxFqMUCnE5dc1XG5+9R7Yv4zBfXISo5 lWbD9ZZuk0NdJfv0qBD/87CumNzNAArHh1POGgyYyjJnFKz84Lfzclper6Zf14k27LSx0e 8iQBoHBQyZzNrrZycC3/nYq1oRu3cm8= Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-742af84818cso5388000b3a.1 for ; Thu, 22 May 2025 22:31:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1747978296; x=1748583096; 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=Yr+zqi1xDruI1x5ya0W2aQGDUI9Q6v21l6XsDNnpWarHIpLxXnZBXOcIpNYjkSB6XC NDT3+0a59wBot5a7pEg+Txz9ovZFcfj5HHLDG/Fj0wFGQUr01h9Kl03mm86CXZb0mrVs bUW2/IbRY7aPA0/6MUSVnyrazB7lBHGbsR1QTNFmNnSHZwfZHRTwfQSYO3Iu05auy9Jc 8mcQxPYhJdzTyz+GvSX6K8LzKifUV0uTj1C3mxLpji2dgrvEzrF6M/ax45J2NbnS/u13 Ivm0gQIvmCAvXhThm9UTRyC/3NTW65Vnf4hQUUElbnCM5mcUE4RR0AQnyu+UbLqVyYBT a2dQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747978296; x=1748583096; 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=BE1ccix5PY+D75km19Sjyv/wCDvp1ONtaAnw3r8byhsSTBKVA0zIP5VH3QPicYZ870 75U8rQ4t4y3ChaU9F2mpNmnaOQbflfPumEb7R/pLUqNodxKZVOlENOti22BJQuO8gOYE gYIOoTKlVmIEM7m7vmTyPSlYYdhyByh4y1lPNaHEwpicKFJtxbeLp/QkiaHRurQ8ILdT PB5cWukkQ//HqpAgPuEx3McfOdNdhlCUclMxxlxNjYlVGTWDNeFWlm7F80S4ucxSX2J7 Wv2pOB7BDuRKi6YUKBHByVT7Zxdxj2SqEx44AY0bpN45+6X02Ezrt+fRGaiy97c4AYH3 CXpg== X-Forwarded-Encrypted: i=1; AJvYcCWYqq00CEvvB/dZ3Mj3goA1kCl1cDt+qV/N9FaTj9zA+7t3G9MaKtsg2AP6BLom8Orvpd1LWCNAXg==@kvack.org X-Gm-Message-State: AOJu0Yx48tUQtONksccpEdFwtQwclefQrzHIgQV0hVz4r0SGdxxG1xMQ Ol1u2oS+apNvWM7cfINb5mMRXHDZtqULJu5ADiSwkUDgIG6Ubx3tVUwCIhQ1mQdFYGA= X-Gm-Gg: ASbGncvvblLOeQOO96aUZ8qBcnqnkFa40ubgG1uaPeOrU7ylFsVRL3YWWoUukr+KYc6 GhJ53xlKz2zhIlZtqVcrW5B7xdfaaV8090FgJ/PS4Mqf9wMy4J+OtffjtEU7FXu5HXSgxZ3ZQdD a/vwnJETDFsbekTvULycqwcrySTVAJH4uGBOzm89l3Lhp/+GBXb3NeGXIgCGs8PbL2sI9WrtA+0 kX41cSQileJwOztxckJOq8h1disfw/h/jHId2ZW5Pr130x3h+mC0Eb+euLo6+OkHceWzsKwyBaU Tn1p3YB9kBgivWZucr4bCPThhoFdFDb+jGAUVON9OMsxKNoBkveoqXbbxLek8w== X-Google-Smtp-Source: AGHT+IE8rK05QdJ1ITD+5XvR94KKlymVkOHWAITS/NaW03DRq0vlii2hXT8T9gkaCsqN/qPnStmT9w== X-Received: by 2002:a05:6a00:9186:b0:736:5e28:cfba with SMTP id d2e1a72fcca58-742a98a323bmr38743995b3a.18.1747978296025; Thu, 22 May 2025 22:31:36 -0700 (PDT) Received: from debug.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-742a982a0a4sm12474336b3a.101.2025.05.22.22.31.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 May 2025 22:31:35 -0700 (PDT) From: Deepak Gupta Date: Thu, 22 May 2025 22:31:10 -0700 Subject: [PATCH v16 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: <20250522-v5_user_cfi_series-v16-7-64f61a35eee7@rivosinc.com> References: <20250522-v5_user_cfi_series-v16-0-64f61a35eee7@rivosinc.com> In-Reply-To: <20250522-v5_user_cfi_series-v16-0-64f61a35eee7@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-Stat-Signature: wqon53dz5fcortn81rros8zjisu1rm1g X-Rspamd-Queue-Id: 3DA871C0005 X-Rspam-User: X-Rspamd-Server: rspam02 X-HE-Tag: 1747978297-88652 X-HE-Meta: U2FsdGVkX19Iyjs9ixLCfS9JEBycETTankXzzzGofcVCq/+xtNfGW09otsQ09tvo3Xcs+PjKddyccLLo7PMIrPPwjknCDhBItQH5nL5QEKtPCLZ6ePsKkfbvMteUoXZP1Tx2MDkza5L3aQ+raagfRWFwbUOzI/tA0hfpnbvqv1pQVM/3rra3zZ/Cbzphg5xcpa8+eGwT2l+/sGYqW0Bd5XAfjYHESZCevIkf9Qol2sZSdMM7hSRodz1z2wiiQcyP+3wUVqnZRS9q+DZzLiv72Pzr+nMC4BSHwaahKvQj6WJdZ9tKVuhtIEaCDNll5dpDLvGWo+wdBVuxdiYd9RDAIl5O4Jf84NcaHYM50l0ZUf8Fo8RHu43iQs0cmYmRY5dmJ/mgBA6C3KcQ2WDaFKjABTo3papJw8z9Sqb65hC4UbLkPRoDTpbjNiYuhggTIkxfu9ioeS9c8PJPJ2ZaZb+eFOS85bfxyyf9IOSajZAH8cZcXZ9b2WgnzoCfiVp93sNGJovzA/fug62HO5br6CcBn5zwzwZHjL6Gq5E/FdVjd8VMRHSdBFx8QpirSrXfcG+VpFMxvct7bgLUS6vpT9XjjUjRhB0U4uJUOVzwg4xgo54k44YCzBJOHDTDr8bvCR1vtPNzcZTCFInxnWHrsZWCyG5S4wH8HWkBtwZmNHTIL8SRt+1lc69JJScgFIF1VBGPg4JgKjAOepuFBmE4NNswr4xG+4zzTfQ4jdd7p0lZo08qjvwc8873+U4j23EsSUyZkaqDGy4UROFT02MpnoxgeLttXdgWUqstYzxh2/Yswi/48VJ7DRI9mR2y/xdW+vv90FkPmvVp0DG0ro09ZP//FKtrApMon3ZBbwxzRz+aOrVuhh4kt6d+Q3k2rJLWQRJ0aYZaI5NJiYHEgybgnzWDYzutqr5nn6RR+Tk/mOPcJULX49PMuR96/pk9EZ4RB+CJORFtGFK7bT96q9AfNTv 3t2FEwAV /OgyIfacp7vytJBPY0Ou9avK5mvgP5A4257xugVUTijPltDhZLROk6uxmpulEFxSn5+U+pJIL0KbZtNWbufcePsvi4ICD4oqChs7QNfm4De7m9T+LQl98UQQzvNWrEV3JII5e2Cz7fFFPA2Ai7gGwFe3XHfQwZndxC7j3IX+yzWM0GAKANFJO9hr2/g8vGB3jBttzHxd00GYq2UYkXn0Q4jbfkyT9rdw/IwfBjrTUyBpLQIEqFMIzmjs9RR7zmEOThJ/fbmzK5ybkJYuf/IyU5ZW7oyiUd3AT5KImop+EjheFlyrTW5jKaWCUsdQA1ITIQWkSoYrHpZFNN4Eeaml5+OHyqDO+TqJSvXyIzPXrsuR0j4wyRUflx7Xt/PZubPn/+N++wmf4g+tJkhEXgitTosUYiwmFE+spTwyo/YfI/867975yxJJYf6MHzqp7GT+u8fwTkAsrMnIAS9FqnUH/Pb2t/y1VhZ0aaCTiOnSuVZdTax2NIRjd1ouxYaYo/RIN4MfjuCGITpdfEzk= 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