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 142DDC5B549 for ; Wed, 4 Jun 2025 17:16:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A434A8D0034; Wed, 4 Jun 2025 13:16:38 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9CD298D0007; Wed, 4 Jun 2025 13:16:38 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8E3178D0034; Wed, 4 Jun 2025 13:16:38 -0400 (EDT) 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 6FF038D0007 for ; Wed, 4 Jun 2025 13:16:38 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 31046B7A90 for ; Wed, 4 Jun 2025 17:16:38 +0000 (UTC) X-FDA: 83518372476.29.5846FB1 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) by imf23.hostedemail.com (Postfix) with ESMTP id 3793D140019 for ; Wed, 4 Jun 2025 17:16:36 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=vDtcn4eI; spf=pass (imf23.hostedemail.com: domain of debug@rivosinc.com designates 209.85.216.44 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=1749057396; 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=eEcfdwyl7aNZrz2FUhi1rkQ0PlPphlyrNN2IdEJ/dIz1ZIWmbF1QBhEpug52N5xogpgDh/ wJHmd9lTpH8/D7MTXyur2r7RsjN2/3YsBgw1NIVH/CPVUreT6phVAlnKebOq0i4i1x6wcA sE0baRR4hkG7WFY5lNpMHDC2HYfGBaQ= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=vDtcn4eI; spf=pass (imf23.hostedemail.com: domain of debug@rivosinc.com designates 209.85.216.44 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749057396; a=rsa-sha256; cv=none; b=pAjJkc+KcxrDmGgjr7AAQtrFB4iIBBg07samyUVI8Nu36XPXTnK+9pe9Ci1iXb6byxH8Z3 EYeeQciGBzVe2cEOdrr2T4tnz6hwMwfWaiWwIU/0cLyXVRuFrnYzOAbc0Rdli5ZzwluegT QjqB2Wk4X5oeB9Xh8t6ODtZTjNdOv7I= Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-311e993f49aso95502a91.0 for ; Wed, 04 Jun 2025 10:16:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1749057395; x=1749662195; 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=vDtcn4eIadSNjoHnSmS55hL54p4NFpK/k+WxYcG8NvzPsrjhY6CY00eINViiOVltv6 hQ3CJPUjxNHIvGxI9CGPTvXnSeOg4sG2dTE26isxr/dUhMjkwZu71TXQizK//5p/z9mK 8vU/jMr20OCUruDZgP0hC/t1BXYlWxxx340KxachcllSTbQ/cP29icsYt+RaOQwjvjZW X7aXSyan2usz1QLipXdke+zMuHP7gNvl9n76s44eZkJ5mlbHm6qa61rQ/ml/KoML4hCL VpldwiuQBW3r2Xb8ad72aKXuJqRZnMSpRWoiDklqU6vKJ3gG48RqTHIo1P/7s0HAoJcg GDkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749057395; x=1749662195; 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=nVGQdluEw2u2cZCmbj8Zce0NaxwTvtpOGFgPERQ4i47PW6Di631EvMKjHc5Hknc0rP BEL9kQV9eHiH/ywkzTgsZKwaelGr5S+uSqGmodTXtkV9H/YJEhKAosQrvRocdhwRvGnw YfxD7cxINMDirQdw0ibM3NqMRocUt7WKjnhTskyhXCeZa3j+Lnc19d132ue1P5wgTBOt NcbFTwaPR3gsk2vzfHlcmGy09alFfDZmycvQpPsradFB991MQn7v1sspySX1EQ8uVih2 y0fyvCIDI3FKlA8AmMIu9bBfd91FXWLQEQsJwTccyUG3fS+FMxaDwXnlhQKsxdFatCXF xXHA== X-Forwarded-Encrypted: i=1; AJvYcCVzQOn2Pn9qaMne62K2efAY2kkPPEsaZU8/jpYGNv8oWlOe1N7Di8abX1mrms5LwSWXu6m2t0X7qA==@kvack.org X-Gm-Message-State: AOJu0Yw77HjoD4DnSQmiT+IM+CkaoRo2KjZSbM1H2fS6GPF5AuAACnXa Mek0nWnlYmViGgqa/FXyTvBTRmwe2Yln11DmIDlbBeg/XnM/f0tnTl2vY7RyXwuUoIw= X-Gm-Gg: ASbGncuz38SjlPCyMRNECeXTZiwliPVyehGMwIZ/Xc5toKK7lK7LrKKWG1o4Edd4v5S K8Ac5ZMJ7FIZGi7w0Cqfpp9K2ajzmhmWl0AsXmR3zTe4J0tR83MJNGqYXSZRR5lfN1DviqS5sck RNgM74s8Ikq7WfbrzNemIYzne4dZIXhsK/3YMucO/O4wQXiM1Q9TLIf+NTr6EHs7b0pCPdlBmzs CjXv8yNb42EEva7B/nleK2+azPoE8SUrBUVRjGzlhmYzhQWWKKt4LRp9wizxYHdTcNMxQOF9ODS WQCcc8b5aqaG77bnW6Y6pqeXWnRKjz0FAKWLaBRhd3fcfxATAU5r9SGilNk277gt4bfhdsKE X-Google-Smtp-Source: AGHT+IG+Qv2DNy5GUYLSr8qaMd4z1JKIMYQvC0rcwVPQ/+dBpmSSBbz8jQQs3wb6D/V0cK/kK11nfA== X-Received: by 2002:a17:90b:54cf:b0:311:c5d9:2c79 with SMTP id 98e67ed59e1d1-3130cd31ea9mr4868567a91.21.1749057395003; Wed, 04 Jun 2025 10:16:35 -0700 (PDT) Received: from debug.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3124e2e9c9fsm9178972a91.30.2025.06.04.10.16.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Jun 2025 10:16:34 -0700 (PDT) From: Deepak Gupta Date: Wed, 04 Jun 2025 10:15:31 -0700 Subject: [PATCH v17 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: <20250604-v5_user_cfi_series-v17-7-4565c2cf869f@rivosinc.com> References: <20250604-v5_user_cfi_series-v17-0-4565c2cf869f@rivosinc.com> In-Reply-To: <20250604-v5_user_cfi_series-v17-0-4565c2cf869f@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-Queue-Id: 3793D140019 X-Stat-Signature: jnwujdes1ge1atci1uabbj56uwjxou5h X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1749057396-695552 X-HE-Meta: U2FsdGVkX18aErpt7LG0OcaX3Apk8V5TQgNkKyhRlplIdKk+Z1Ol0iJClR8TMTYlVhGoPyfE/EFvvJ4asiDXo4ONf4agonIQraPQ+gelAdVP13/If403XZ0KQquRLHw0IiETYv3NJwnzkxHjDlSnqn4JO6veCvoRHmu4Yqq+s79JUXSJbqLCo6i5k10RQlCCrybpGdpbYrQT8w/g+OAl4UnVOJamMSIHieQx/aRTcqs1AoV7IJILfsjwAAJdEhhq+yJSqCFrNYYtgfsfIaVYDYMmSHYQve/MIPKFia+QmlCDQhE6UswEpfv2++nNyzSAWK7qoSHwykzMIvBTUlG4zs5Wpg6rvARQRNOYYl4gi709d4dngaLKSLkCgY07kAxsvxYdQFXW40Hffut3bkCL1JImYEcnkiFKKaqb9YS/oHndLaxllSr+YhSQrOBfUcVLv9vv7ezDOZC4nNILYwh1Zvubqg+IjAATC6IlchU8gT7x5mRkpqsy4WLvbZyT0Gkjes/7YhRvAM41NZbZezUkPZTinMLbr+drvnbssgP7YINRE9smYe7reR1ZP4gMZUS0KCO1x5eb9x4lOvblNN6N5s8YHunvySYsO+6147TjdAG0xI/jXSNLGX6iqnZQvjpPCBFqmCPH4UzpnIlENRQUESrPSwlRypik5vTFN9+jWLx/JoJy5C0c3oVuxgcdyiFqiVTEAw/KSCXgYy78qet5I2DoOfCMQ1FNAUJ3SONtp+vLGeunJKCdGtthKFSX9FF2nNPdzvpqHDgseQHRpHHWBu181MvfVQmcV8QZ0z/9WOWTrlcQNjogr+4JIQBfgrRN4T+RBxy1V+OqgZ273sViYls+lks3lEuYt5x2qWTIm6vaBtD52jmtd3pQMUmzBjCoZdLYhJwSZ/E7sHImh45s9S6iNY3q4LORFyxMAjX5arROo7H6pbrfmQqcv0r+8jr7gjgwr86CQv8eOKmhwuX k6GfjoRV xg/xVDCDZl6EBcUdwk74n785vLoeoN+ZHejBUrvgzKF3HXrgjebQXe/Gl+jeg+ieZMyChBbwOzg0pJflALT1Q5MfOHhU5/BOfAbvjdKZlM2CMNBULdJGDm79aQ2h5Fs1yUHSef4yqz6PKf+Ivnl7UOWWioCAAIao/wIUgxI+KtTFxU9lW+UxIJj/FrG08n2HENHwr03LLUVTLF6yH5zt5AayP4T45MPiDG6ZyDmZUSE6Pf6i/Il6OcTRnXMyG3RREdcEKxEzHKCPToQzOhU/aXO9LYsxf+dOHXrjDAbadQdPHyaP1ttn7cMCVtrD9iqv9xA38jXCCfmSZBeeS9Hcd0RON3/ODYPBxKDH/rE/HchYov+4gW/olDd8GHj8qKSl3e2rC++AOGAJwKpZmKCkWe/aBE5iuqULc94bv209bGa3c52Bs3jHmQIno1vcInQ0KbDAyZsCmQ10ualOikMInlexhHetMfSPVohTKnwpMjqRdAkhkovItqvAVIIQuEwpGDOC03TTV+SMz0hI= 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