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 4C8FBC369AB for ; Thu, 24 Apr 2025 07:20:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F2E9E6B0025; Thu, 24 Apr 2025 03:20:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EDFF76B0026; Thu, 24 Apr 2025 03:20:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D0AAC6B0027; Thu, 24 Apr 2025 03:20:45 -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 B00906B0025 for ; Thu, 24 Apr 2025 03:20:45 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 63768B7147 for ; Thu, 24 Apr 2025 07:20:47 +0000 (UTC) X-FDA: 83368090134.03.CB14E7D Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by imf02.hostedemail.com (Postfix) with ESMTP id 9848D80004 for ; Thu, 24 Apr 2025 07:20:45 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b="i/x3oGrv"; dmarc=none; spf=pass (imf02.hostedemail.com: domain of debug@rivosinc.com designates 209.85.215.180 as permitted sender) smtp.mailfrom=debug@rivosinc.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745479245; a=rsa-sha256; cv=none; b=yTZKo273m0Y1zbxE8OlBra4HhryzaOmGnzWc0B708cAoBfMAGjUfGfnIG0y1qKTMO7raQL Xbfkz95gAuSLRhxQPIe+RoJxV+kmGUWwkbgeo4cZ/yc05Ct5/Ne9YHA6nXRInzRKp6JE/X RbH80iY9WaYziCdbQwUfG7oFAqCa9lU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745479245; 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=qwh9x6lD2MO9lJ//kvPDhOJNTq6ZrmIfW44uUh8vro0=; b=UaHm9IBzrmn7H/aevenCVuays/f5eth99tZfeXRQ6WwqOSXnT51opcSL3Vo3x/ATM7nq7r yOZtogx6bUtFPaK0T8ouG4s7K5mM6MQUIOZatwUttKD1miZc7DvfJV9DtLmv9m9YcRjtOS cLoiZeZAggU8pdtHpWtvk1IPNfjAGHI= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b="i/x3oGrv"; dmarc=none; spf=pass (imf02.hostedemail.com: domain of debug@rivosinc.com designates 209.85.215.180 as permitted sender) smtp.mailfrom=debug@rivosinc.com Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-af59c920d32so388228a12.0 for ; Thu, 24 Apr 2025 00:20:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1745479244; x=1746084044; 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=qwh9x6lD2MO9lJ//kvPDhOJNTq6ZrmIfW44uUh8vro0=; b=i/x3oGrvk598cOCljYKUp3hd39GFp2oyVN8vwNYyzknmcJuC0FBF9JAB542yH/2Juf kemBws5ywYhKbxRWudTXkh8I4D8Km8cPpVnzRyKJ4l5qCjgpTxo17Glvu5f5GKZq23I/ e/Kv3HB0Kc8MjOLr8ARtQHUnXfm5kgreCgnVBr3sQES3qyr6fv1vmul2sHOdH33ieci0 I3LDeWynCPu7KxgjOSlewzu+eCT1Mq295b0+o5w+o2GKq4slJAyKJH4yPqm67Z3EXZqQ Ukh82UsxH6rnvnuFlnfIaLTIpa8rTxzJFCBgICfEoZUQ2SHgxRyE33RjzjbaHAsyjlmb ZjcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745479244; x=1746084044; 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=qwh9x6lD2MO9lJ//kvPDhOJNTq6ZrmIfW44uUh8vro0=; b=v3K5JXZoE9QVA/7txNjIissBkb3tPmO0MVCb5GL7sWTISPll1hRYodcAJDDi9eOzd+ hX/UQjGyJ4FNPebj9LaWR+axC7c6tcJbYnzIqDoLnvcW9EHvMc5+rtQ6eyOp0dgx478u A3fklLw5jbihXrSKVNHh5rfn9NNgN3KXfqP9mRyI8IhWWMgn/vs43K8bIkHww3QXj0CF uXoUkxknabRMQqu9Zcy5aJu9LegrvHX4QRSv1KahfjwMlWqMsyRHimNaeZgh1FM7gqRk EJB203vbp4Ir9XNW6IbvhGZUjizHXiGK3MGs1+LlXpVIB7Mb6m0qfXltZwksMh0VA+48 oiLw== X-Forwarded-Encrypted: i=1; AJvYcCXlcIWGWzryZDl2TJot0VOnjQgmpP9quccRKRqH07kvjktu3d/+jIZ0jgckSUL4mHlAP1QjdYRiSw==@kvack.org X-Gm-Message-State: AOJu0Yw9PO/ZcoEA+9ydWYvlkH+GEySsG4j3XGe+prS1GlY31/ba/M9h eq4ap7RYx6eY4CW0wSNMjUusDDjVdbUk4KNWz6PZnnvCXB5tHKfnSLsrX1nfMeQ= X-Gm-Gg: ASbGnctXKoQ+BEHht8E2cHfzTSyWWdw3vPDE+l4ivNfFJp7/CUZzVY1SVzQeesQKd52 IQ1wyRJLmNLNEi+wvbxC3JuyxOOxNlJxmf2UYyQtM/RxXG55fsbEdLh4SbcG5dxInNF7FMy4fzm g5GbjOWZQvLT0PanFa6HBD3GtsgefjAGERg75V1Y9DVDesQKSBEB4pWQDYEV3hxBHITnKVjmJps Vo1E9Y0C+nKjB8L22TB0v/Hi3vIMcTfHjOsG4r0p66EVpcQ++K6zoCgKyQTiwYQVJ834/yFx9zC ugL4DAbp3a31sl3OIq2UzGGORPBCRgCCsPZoxCvvbKORiZt7Zf8= X-Google-Smtp-Source: AGHT+IEC5A9t3KljY5+oPEDMiuLjjOrgYWWUXALnuXXsSvtsWmrcbar9Dh97NMWpjDuX0nmNsvCGcA== X-Received: by 2002:a17:90b:6c3:b0:2f9:c144:9d13 with SMTP id 98e67ed59e1d1-309ed31aeeemr2671578a91.24.1745479244474; Thu, 24 Apr 2025 00:20:44 -0700 (PDT) Received: from debug.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db52163d6sm6240765ad.214.2025.04.24.00.20.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Apr 2025 00:20:44 -0700 (PDT) From: Deepak Gupta Date: Thu, 24 Apr 2025 00:20:22 -0700 Subject: [PATCH v13 07/28] riscv mm: manufacture shadow stack pte MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250424-v5_user_cfi_series-v13-7-971437de586a@rivosinc.com> References: <20250424-v5_user_cfi_series-v13-0-971437de586a@rivosinc.com> In-Reply-To: <20250424-v5_user_cfi_series-v13-0-971437de586a@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: rspam06 X-Rspamd-Queue-Id: 9848D80004 X-Stat-Signature: c4fgnpcuz9bji6i9ujx7qkdskgj1s4nt X-Rspam-User: X-HE-Tag: 1745479245-371381 X-HE-Meta: U2FsdGVkX19t3dpqIu/NwceJjnrLo9cLD2/VE4u+YYIj81zqtyodbTmUYFdg71vmZBQEVuP6q6bVtgNMMDKLvQcU2hRMo7/A7xxGyf1lsZNb/yW+DWbEg+jV9cxynpEFEeDGCEL9Qqq03H3RdLqOWq3vF+iaDxYvBjOtLcD1x9Mvmld5b6MVk/3S78tXy5B2OL6QGewMuGCkKrLmzSOlPC0ABiWUnDPvC+p1ALo8YhU8Nx+EEpchSACGlXe2b3zNGzW90Zz4+lIRoO7j8CUpPKTt0JhRhL54d+IOwYpVzzXu6m/11ON1BcjfK4D0tKYDfFTjkbhtAOSNfYmHUhHKQbdx5Z4i5qm6Erw+WPLdDpVIzvQrQTRNI9C9ZpYOARy7kmdEPMdyAWCkKEWjyCZ7wIFGdgdDYqj45OomY1OsxJf9IY/aqiL0cfnRXYxVuGzVEpts0hIIJNQ674IKKHNkI7xBKULeLt8xOh63ubToRy9kbQp5o/6EWhfGWvGY2fV2LRD0D46RJVv3jIlyFhVbI5UisznLUAuPu/S33vJUm0eFAumY5XKFD/SGQdzG+2/LTnz8QRU1Ho+SGVznnmQ/EYVahnelersdyiwHHoQQSXvRAHZzBX3iiIlU4U+2hhu2SbemXoHakCO3UVO7Tlzhp0dq99ydMqZgqpBb2KQcxjaR1dBd60rvVh2WymBfeTC5NTnUho7XtePITkg51pFBg88p5iyAcKxLcUa5sKzhEEtrsV6BMl4lYZGJ28v4oEjXzgErCp1VY1/o082AXdFiBvBpF+JUOb0bH29OEVZuYKin9LSF/djCFhopsa6FFnHgh9grON4ElvdpHtpd6i2i6MZf9LBzqBnHj6afeIoqezS2mGwfD39ZSbmUYGIxg3yLyngVN8gdgpAc7nmdMICwVL5G7VlHm6Mg96G9bAL5iiifJGbBytwP1s6Mt2Y09nHM/V0ZoF3L+qVsMeGcG7S /14I+Put 3JQ8Kk8m3AvzW2hToZzRWbP0iuUPyWnE869kQTWwfQ7vsD6396/F92+MFKmxP7u48TsYHdFEmmGiuEtrodP73O3x87uk+Eqb2OvivnFaM5jVRALQ= 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 8c528cd7347a..ede43185ffdf 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -421,6 +421,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) @@ -749,6 +754,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