Message ID | 20250314-v5_user_cfi_series-v12-7-e51202b53138@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 23C0CC35FF8 for <linux-mm@archiver.kernel.org>; Fri, 14 Mar 2025 21:39:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 97520280016; Fri, 14 Mar 2025 17:39:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 90004280004; Fri, 14 Mar 2025 17:39:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 664F4280016; Fri, 14 Mar 2025 17:39:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 43779280004 for <linux-mm@kvack.org>; Fri, 14 Mar 2025 17:39:47 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 6C8B781624 for <linux-mm@kvack.org>; Fri, 14 Mar 2025 21:39:48 +0000 (UTC) X-FDA: 83221474056.20.EBA55E9 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by imf01.hostedemail.com (Postfix) with ESMTP id 81AA640005 for <linux-mm@kvack.org>; Fri, 14 Mar 2025 21:39:46 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=PpT1EQqi; spf=pass (imf01.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.169 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=1741988386; 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=J0cdClzbcf4jwWk6NNoAER7Uol3lcFHrvU6ecxcolCg=; b=6J7p4WGgnE74pB/uWCDgF+tirvqzC9yO24GYiCz6+4wqZxmBZDSSOI60381hp1hZDo9Kzt 01x9LlipKR4a9fg6zMkA6cuT7QI3XMRXDMH/c5AOZFrZ/Yb9j3iHaW/VvRcskRy26Al0oo WfJFUgUVIC5D7kQS5A/KJBVqDjMcRTY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741988386; a=rsa-sha256; cv=none; b=YVR1j35r6uXzlN4umwZGcc/KZqxZaGR+X1QkhX05i3cqqSIcET/COxQ3irwdVxEE+lYzRp qiZYE+A/4Uhxvq84rdkO3bEWDnSHolTuCO3gloh9TDBQZv3iH+mDORqpFjL7pcHnc4UwOe EguIgpddqmSbNcqXLPIvhHhPCCWUchI= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=PpT1EQqi; spf=pass (imf01.hostedemail.com: domain of debug@rivosinc.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-22409077c06so66608685ad.1 for <linux-mm@kvack.org>; Fri, 14 Mar 2025 14:39:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1741988385; x=1742593185; 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=J0cdClzbcf4jwWk6NNoAER7Uol3lcFHrvU6ecxcolCg=; b=PpT1EQqiF4tMt3YHfLQtF6SWcuiUR0HW6+vUi+4GzJ3OMR6oGrL11Yxaqg+RZpice3 v/O/eumQOJYVwXGDFqERzWme+TmsM4C4MNJeKgCRSHuGvhOdjreT9WAKra7WrOt8L+fI 8kC3k+ttV+XWexmhX/pkYiN4gHgBcGHYBn9GqsPJMw4bqEA32qJWXSXGB+6306bz60fv 9o/1RS0gI0rB7YOk+xGjIYbvAnFrco3DdIjOhu2o0QMVvk6yV+60YA80k/34zpduPG+n /vKR96abcnKmUreMN0ZgcPEmajFDUdg+Ghns+KI6PDsLt5TjaRGBVqTrzFYmIQOfVUH9 0A1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741988385; x=1742593185; 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=J0cdClzbcf4jwWk6NNoAER7Uol3lcFHrvU6ecxcolCg=; b=sEVu4uyQpfK8oDxewi1v9WtlCbvexJi+z17NrfUNLWMGk1Sqq7+gPN7qVq+i/X4R84 /SX+UpHYw6o/bj/X9FBZfhtZPz4eXVnWqmQxSdNz777yjOWWprzwvW2AUq7zrgP3cUOA Yr5KbGS1epPQEL7rDW/an23tdBLzFvf5iCjgK88H4Da57CLBUXs2jIV2gZC/B5QTPxZs cW4eqkXEug/YQpAQAKsvGcVKXx6FB4JH1TDbso9vUvAKB9jqIhyZ+2xzaYPDAckTjasz jmg+ip+sR9oLjHDitsTgrHrBcsf67ur3p4SippUhibSIWek44OlnjXcHQcZ9Tn79hY3l VrRQ== X-Forwarded-Encrypted: i=1; AJvYcCXcGCWYy4C/7BIuuK/CKnyccfC9CdTF1H5aaUrTtZREj774OKySmRKg9bW63LCJ7rnr2BNc2OfgLA==@kvack.org X-Gm-Message-State: AOJu0Yxfu8qSsX65boDIZ7HwZ3jhPCZGd+sMNCehfoik4h+lI/Aa4z4O s81kpoYM43Ge3N8dGBUp/kVQ8NKn+1Ac8mc3vFNkr+KuT4/8s50rs2TiUhE4mpc= X-Gm-Gg: ASbGnctd480QHVRsN4qqp6R4IXNrOOhKKMMe/n3zmZv9FS1mWFHbtGeTzLiH/kDzdK4 lKO322nlCsBx79Dv6htnpW28VZ9THUKrK6aQHiVSdwXHist9ZWsmLURSt6japNyk0k7obVk+YKt /Gt9YPvArXMj22EDP4peiKpGUv3FqysKAHM3tqtHVubpJqvHGlyXrHMl82JHh5lmEeejwk0V3rG ie8UoOPutJDpfz4Aco1fBfyxql0NJEDxakyiN3y728fUNj2FXKUV5XFkdorkrd0xsNb9lS1aFeu f6yN21fuLKUB7UoXn4kmZK9bQpH4UkHSqCmrunbL8uOwF2wlxTmg/hJR0klq05uszA== X-Google-Smtp-Source: AGHT+IFZaFTcFkxKWE6fnM6U3z3NBo+SecOR6nfScdkNYaVzLCXCW0qb6at3qhL4+W3vIc9ENh5Ndg== X-Received: by 2002:a17:902:dad1:b0:21b:b3c9:38ff with SMTP id d9443c01a7336-225e0aee9ffmr52390865ad.37.1741988385430; Fri, 14 Mar 2025 14:39:45 -0700 (PDT) Received: from debug.ba.rivosinc.com ([64.71.180.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c68a6e09sm33368855ad.55.2025.03.14.14.39.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Mar 2025 14:39:45 -0700 (PDT) From: Deepak Gupta <debug@rivosinc.com> Date: Fri, 14 Mar 2025 14:39:26 -0700 Subject: [PATCH v12 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: <20250314-v5_user_cfi_series-v12-7-e51202b53138@rivosinc.com> References: <20250314-v5_user_cfi_series-v12-0-e51202b53138@rivosinc.com> In-Reply-To: <20250314-v5_user_cfi_series-v12-0-e51202b53138@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, Zong Li <zong.li@sifive.com>, Deepak Gupta <debug@rivosinc.com> X-Mailer: b4 0.14.0 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 81AA640005 X-Stat-Signature: iz4bag5d6s5r4877icpomwertkwydkr6 X-HE-Tag: 1741988386-435353 X-HE-Meta: U2FsdGVkX1+h3DfMHYOvFwyFKjxb5WONVnLkLlCqI9B9cHlXacwtQ5Ew6tB63M4nPatpNO9OfpUj0rXa18dCU2ErwfMism3hFgCVoL1s4rWsyne7zB7nz0Okl1WmwGAOHVuJBuuyqbDGgWjd6d4PvYU04+U0gFEWTbwyTa4vLgtyNjQMsiLscaMnyz6raokLEvU85WJ9qWqweyZlUAkcqh2HFazeNvx2tSSXGkdNHL20bjqQIVDKIkVaTKLXayssSlk0JuVbcYtIDjFXWFOb2gij3GwWjply+cRndrET9X8Q9U5voe8I4CtGHLCUm9dDe7fDj5o5sg+CeKt+//yZFUsKz98C6OcVFuhKwbgF132Vz7+5LEniP83Ejj1PnXg4WgMz4whTDuaOxNk356shFaMLgw26ifUhruykdMaJQoJK4auYGzu5Qzm7mbRovEjuqE/LMcnvwGvEqJdlHaPY/ImHyrEuc68qHyQoXV3dKujJuZKvNTgR6+dcXKTOGcgx+ANDobpI6raVew++lttbtdqwD7mAAz+QC3KwAWg+W369jy6sr6aveNGi2cMYercfVVFwV55YbJfRUCcxlVy3mWWnevSxf4UC7OyQWhJi/7cZyMUFAp66jwj+n0CkPptJOfVvcElB4ajPGjXAWR+QVnwVBHy/vD9SF4L6UmEEYzHdVyQKaUgxbdgXcfFoK/JjZneGSF2HgbeRamtafmCi8ww+AQKeg7d0X2bHTqmxnJFyzJ6AU5cTRXuQIocKCOKH89XK1iMR2GOyfLlc0ZWh/9BwXOQGBQ9dN8fpCloFbA2LJKl8P9AN9FCDYf6/WtPLixpS51LEg91fexhSuleMWQVxinkXa3iTUZH4wiwQqSvZXFo0rBKLACCqYQ449T8pyKi3aqyQlw6Jxj0fv1FCB9tG6mvxG8BY0tFbBW4wvedTcnon3SepafEq6pOvDopVlO4sKyHxEyjl0uSkpl8 tkKvvWkq Lf6G0HgmwrK2fj3TzOpNovW35TrqLlHA2Tyicvwo6hmaEuKqAmm/cHiRSYNnyMLtMB9RV7SYdiwAeWX8By9ztqvhRIkjon2SfKAemDpZQ4h9wADx4PRU9JE5afdDi8zzjto9BAYcRUzwUXG5NK+PVhg9etm/pmGsBvqde6H0huYIfi6+yeDfotoQIVc31dS986SjBHVgvYiFIf6LJR628yDsYi7QbzHAMT1OEQtDotzz4OlLzZJ5wHKZfghUmz5cRGBHxG1K3dg/h1kuySoFcAjg2vHJSNuc+8Q0RpDYrH0HLxpHN4K8P7lAUrfIMR9dVJd2zZXXwJeKmFoF3YlKhYu8BejzBZi+PtuVc89NkdC+p8+MtuDIBahjRYVkdvMu/mdZiEO1Z5wqz+suyg3wRfNl8IrSZMiwTiQkM2lkuN7RHYbCp7gYd2xKlnModOMNsFLmwfF9emRNpzb64shNvhxpItQaDfHoI2PYNkjweTw6Y33eIUSBkGdz+0O6jbM9lJZdTYvBRehq4N7Q= 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)));