Message ID | 20250210-v5_user_cfi_series-v10-7-163dcfa31c60@rivosinc.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 CBA88C021A4 for <linux-mm@archiver.kernel.org>; Mon, 10 Feb 2025 20:27:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1995A280019; Mon, 10 Feb 2025 15:27:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 11FEB280016; Mon, 10 Feb 2025 15:27:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DC8F2280019; Mon, 10 Feb 2025 15:27:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id BCCB6280016 for <linux-mm@kvack.org>; Mon, 10 Feb 2025 15:27:02 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 6725214062D for <linux-mm@kvack.org>; Mon, 10 Feb 2025 20:27:02 +0000 (UTC) X-FDA: 83105169084.27.DCE887A Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by imf10.hostedemail.com (Postfix) with ESMTP id 7FC87C0014 for <linux-mm@kvack.org>; Mon, 10 Feb 2025 20:27:00 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=ZEI8++B0; spf=pass (imf10.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.179 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=1739219220; 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=Bi056oDr44X6mEA5ptOBWamFE29btTVHHp5F60vYQ4s=; b=JVTlUwlNXAwWWNlB3QqufoXUPp0SydxWhFLZ4aBm1szVmeoEyQfjh/HkJ8aE8CzVXbhdMq TKIDKLH94SESO+sfgzlTXcV3J1MoyUNGQTk0YtJFBwyhPWwxP+pRWr0HrEwZspf4UOUcEu K/T/aQtddfs8Venye7n8dBYk3qkAv+k= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=ZEI8++B0; spf=pass (imf10.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739219220; a=rsa-sha256; cv=none; b=jdCgN/LgpYGVr3itzWu7l4yg9GEW4j/eL5aVNtobkR9ZePf0I2RheJJ/Ot6gQ5kDG/FVAb Um9twJrbSCX6X9ifJRksTTH15PIquyhEa6z9VTQChr7pAbHLR74vrdyyqrs7holcm5k0Ua ybGiYaPlDJHB/HJanse4QrmuKzYBedU= Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-21f3c119fe6so107239895ad.0 for <linux-mm@kvack.org>; Mon, 10 Feb 2025 12:27:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1739219219; x=1739824019; 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=Bi056oDr44X6mEA5ptOBWamFE29btTVHHp5F60vYQ4s=; b=ZEI8++B0YDnj2JUzt+NqfYiQd0IzE7KLcRD/mCFqvrWFN3zIE1yqoy2/SOZTzur0bA S9HsXARnSYDkSUKxHntolIPv/W7aIqDz1ftVXyP8U9YYfLmUCtZu6lbMsmWMRyiimVZK UfxBxbjPckThcB08DhYu6sibzXHHphHqkIu5hcZgLuK3zkwWxgJ+zW3xjh8vfJEI+yVb dIM0ZSn0JgtCw/qe7y+N2QFLOuPzc2N7U/WFaLNaSYJDSx8JFIf/uv0bydoBedBAaOjm ZSn5+CgaD3++iXTmLLotwVnEZqLHrdLj2K2omNSRENtqfy5+ghSfbnZR7AYG821opdKi CtWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739219219; x=1739824019; 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=Bi056oDr44X6mEA5ptOBWamFE29btTVHHp5F60vYQ4s=; b=LbePzt78Hwt5RxINEzGYcc5q3J3rh3PQwQqYL0YYv1Br+qMrob4+5hTuEJs4BiQPt5 TftofLoL2RqnVqtE7Ka419djw/L5C4tcnSw+BPfSgDpaIsM31tCAod+MdOIUf3fNua1K QeBlM/MGaEZUpk4tPacYa55du5kaEjHxEdU3eoeJj7Oo5H76LQ3a/ZrJnr4q2l6y9sYh XKgxZ30RKkw7dK6pzwQfctS5sqLmDF0Lu4UPHcf1bkPWffL8diNxrYGe5vKolAFcsiTh MkstK1U0tqZSeN/1nI9wRK93/ldPM2Llci592a+50St5KXFILfVKKpJnwHkztS7HtUaH QawA== X-Forwarded-Encrypted: i=1; AJvYcCWl7cpwxlEGsH7ujHZzCePn+dmE0N6gH+55oeXTdHvKLP9kyMaSKd7BBeYP62X//Qxypk2v6/GLIQ==@kvack.org X-Gm-Message-State: AOJu0Yxt2HUM1w906I2XFRvzR9pSsWOK9v2dItLAiy9suswRIoId2f+T M82MEmzObSThVR8soSuwmdONO6iqyssl/Heo1FtsBOCO8OpUPvR0nd/C7T88MiQ= X-Gm-Gg: ASbGncsyZLPtScD9lj2X0uiB5it+hWIRkw1sSNJQoJ0uV1nFoN5iynBlM3xmbX0Ovh+ MuFuloGxGys6+kdOB6fEqWOjVpLvlRc8uwLz52iji7SDNIK2/EWTDCsrPBCK9QWqlJVehQJrYqr h83t5S1pVzVazRKmJGvRFtXu3N3UhYs/0l/PIhjcbbAx9ftv/c8MoCscUwzso5WoCJAaoeWKfo9 uzSJAq/yZ3205DD4T2dvHHL4ji9sHCZY6uRqPFcZeFsU8SZV16fhOTR7wbY+KUlUoa5uJMf3KZt rdILOkDgEGVzbb1z3CtV/IiJ2A== X-Google-Smtp-Source: AGHT+IED7zcqCk6xnlgZyjRhcEK3K99n9HG3VnjktIjXL97/vl92I1hppw2VD80KTsXjIvmfBlGjpA== X-Received: by 2002:a17:903:284:b0:216:7ee9:21ff with SMTP id d9443c01a7336-21f4e763a67mr241716765ad.49.1739219219434; Mon, 10 Feb 2025 12:26:59 -0800 (PST) Received: from debug.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f3687c187sm83711555ad.168.2025.02.10.12.26.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 12:26:59 -0800 (PST) From: Deepak Gupta <debug@rivosinc.com> Date: Mon, 10 Feb 2025 12:26:40 -0800 Subject: [PATCH v10 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: <20250210-v5_user_cfi_series-v10-7-163dcfa31c60@rivosinc.com> References: <20250210-v5_user_cfi_series-v10-0-163dcfa31c60@rivosinc.com> In-Reply-To: <20250210-v5_user_cfi_series-v10-0-163dcfa31c60@rivosinc.com> To: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>, x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>, Andrew Morton <akpm@linux-foundation.org>, "Liam R. Howlett" <Liam.Howlett@oracle.com>, Vlastimil Babka <vbabka@suse.cz>, Lorenzo Stoakes <lorenzo.stoakes@oracle.com>, Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, Conor Dooley <conor@kernel.org>, Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, Arnd Bergmann <arnd@arndb.de>, Christian Brauner <brauner@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Oleg Nesterov <oleg@redhat.com>, Eric Biederman <ebiederm@xmission.com>, Kees Cook <kees@kernel.org>, Jonathan Corbet <corbet@lwn.net>, Shuah Khan <shuah@kernel.org>, Jann Horn <jannh@google.com>, Conor Dooley <conor+dt@kernel.org> 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, Deepak Gupta <debug@rivosinc.com> X-Mailer: b4 0.14.0 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 7FC87C0014 X-Stat-Signature: dzhmq9st4adabxaz4t1dqq9p7p7gde9m X-Rspam-User: X-HE-Tag: 1739219220-587094 X-HE-Meta: U2FsdGVkX1+wxen47CWBwG5tYGxwZgAlKn6zIkfQ7blIX8M/2lEowF+TTcGbZsFLXJpF5PJNxmp58r7U/7Cz7dD1bqD9eDM3Q16PfCfe43WA+pAzNbaIsuGHbl65NcjRUWnTuUGYLh2ZFyCDYUdmOXZYQROMkPhNPQaqY7jBPNlrhYapuSkF7tZvYZbalFMzlsxJrclG21AMD2cwEFPv+SrXWpiZ2AeXKs7izxdp+jGrQ05e3x50PR8MeaXtj5CzNkVVE+mq0otdK6v4Re0MrsDNU9ZPrLoFIYww5a4ZbymjieAPZVehESGHridYwuHj51GQso71E7Q6j22Vn1xtU6JFMtTdUcASwi1nlYMnKhntUE+kl8Gc5OzRix/VfhrYxTIu/4mEuEkjXSlRod3e87Rj20t24U39EKn5HAkMxL3NZSXFRounRSI8pzbZ/oHIEpBcO99SLtZI4d3kEHg1hyJ5byvlIG/78rlCbZmfZuewmrWzC8atlj3jkByoRQX+R96kPYF8OJcyEeGtidA28iQ3Isyn/80vcRhvCUMbW3qNBu/762BO+fcSuNCYK0IVB5KKNPWb25RFKM/IDew0Y/wGFO2NnK0xWRftwfk0gcnlFM1IMn2WRgvQq+B4oWaeoOq+N3QFZh86cz3phO/dZcmgjrkrxxv/YaOfUjqnriIlrx2SJYuSnjmWAmuzMJehGoI2Y19w1Wh/+Mb0EiwdWP/PTkQHVq49xOS7k0ox9M39KBSONM2HyCwVAemJx4GJP1F1Vp4ZZ2YX4vijVYDp1VGq2CQIgWjLt8hOrFnuXyN7QsRxzRI3XirsI4x1ZlCzk24GywC8A3R1oG19cZM+k3LRpw0C3Y3cfI10Q2nZWY6D/RZU11CReMONTyls6HZesp0sZLqdE6b4fjqqVgiZzHqBkEpGhSQE2+r16xZPa3B+AqSslTTTvJrCNT7KiYFbIg8VmGQbD+s0xJD3+yu 8wEg5Jrk FXnlL+adA6NLEjjKguB43j6xCIP4Fx7/lD6BARsHhcLs6aTo80IMT9mM57tRBISL4G7pVEHzvPdaMLPD7+RhNigZjLxp963I4aICsAQ0xF0adlZ/vH3ROEX28Q1GGr8MKOCR7h8vsPx4Z0PAhAea6lI9yzMq4hFGTSILDzFFHaxi6dTkpDs22AV0QEgyuX1Hrkm6F/u7iRIgu0Sga+IPMGLS2q1mmm1LCXduWOn3Lz/bbOq7G2lDJ3fGk9IC7DOcuErRzzjhaIl0WjvykaqkdUkIAnujNrZAs8pDi9vHiKqLln/SyVfqdyC9Tsh6oqcje0M9yOxzO3OF6vuxeRNwA9U4jN6W2c+TyjsXKL8f7vPqBYKoZls94fn8VpZ++P/2GG3icVwiadtokWnlf+voKAfB9P9/kyhA1UcMkSjT/OK+WuEFgPNhZ1hYentMtBT6fs5LZyAPbRcmp2dI= 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: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
riscv control-flow integrity for usermode
|
expand
|
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)));