From patchwork Mon Feb 3 10:18:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Brodsky X-Patchwork-Id: 13957194 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 3D10AC02192 for ; Mon, 3 Feb 2025 10:20:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7F13A280002; Mon, 3 Feb 2025 05:20:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 72946280017; Mon, 3 Feb 2025 05:20:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 46DF0280018; Mon, 3 Feb 2025 05:20:46 -0500 (EST) 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 1C0F7280017 for ; Mon, 3 Feb 2025 05:20:46 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 497A1B4FC4 for ; Mon, 3 Feb 2025 10:20:30 +0000 (UTC) X-FDA: 83078239062.13.BB015E1 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf15.hostedemail.com (Postfix) with ESMTP id A3294A000E for ; Mon, 3 Feb 2025 10:20:28 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf15.hostedemail.com: domain of kevin.brodsky@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=kevin.brodsky@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738578028; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iT19TPacBkHeIN8ActdEF8KEGxhSD8l1/qAasL3IKEI=; b=SwTrXrS9wllt2LrRJMiry/zAgoBWWMpmXItLsPD6waLr8CU4tZRpZXzpb59r/yEbbwSR32 ehbU0+ivJcHtVRhqmopahNuR9AW9r6wv6n0MqOnRP/PGsRSrQ/IGUTCTC6dvy7l4DQHQzK KiWjWFcN6oJPxCeqfB0rLoDIVrExqqA= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf15.hostedemail.com: domain of kevin.brodsky@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=kevin.brodsky@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738578028; a=rsa-sha256; cv=none; b=H2jxyh7OBb2A+F8m2ZJCA5CwjZldPKuDnkTO6u66HcrdNgAkjRo61HukVCIGtog4ZcFmfB daI38XEEx0WGMFLnaIVxk3XJcWQQOLLVnayYi/r3Yhp1s0brP8bos9pyPK60Xb0I4GZOOo NksCQ1VaoA3LSwBwCyY4KM3JJOFey8w= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 52D9E11FB; Mon, 3 Feb 2025 02:20:52 -0800 (PST) Received: from e123572-lin.arm.com (e123572-lin.cambridge.arm.com [10.1.194.54]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 617B33F63F; Mon, 3 Feb 2025 02:20:24 -0800 (PST) From: Kevin Brodsky To: linux-hardening@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Kevin Brodsky , Andrew Morton , Mark Brown , Catalin Marinas , Dave Hansen , Jann Horn , Jeff Xu , Joey Gouly , Kees Cook , Linus Walleij , Andy Lutomirski , Marc Zyngier , Peter Zijlstra , Pierre Langlois , Quentin Perret , "Mike Rapoport (IBM)" , Ryan Roberts , Thomas Gleixner , Will Deacon , Matthew Wilcox , Qi Zheng , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, x86@kernel.org Subject: [RFC PATCH v3 12/15] arm64: kpkeys: Support KPKEYS_LVL_PGTABLES Date: Mon, 3 Feb 2025 10:18:36 +0000 Message-ID: <20250203101839.1223008-13-kevin.brodsky@arm.com> X-Mailer: git-send-email 2.47.0 In-Reply-To: <20250203101839.1223008-1-kevin.brodsky@arm.com> References: <20250203101839.1223008-1-kevin.brodsky@arm.com> MIME-Version: 1.0 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: A3294A000E X-Stat-Signature: 5arqrsnwzyczuexm4q5mtte83wqwtizx X-Rspam-User: X-HE-Tag: 1738578028-272770 X-HE-Meta: U2FsdGVkX1+zCpKpWhGuZODkKmsLO2Xh2n5CmtVo2Q0DOoMnG72NCiZw8k5NksQdjQkr7pCJ1kKxAtwtUrY/oPwc5FiZq8G/ZpPmqy0gFZ2KC0TZfiPIKfIveXYjvy1/AgICus2bZALXXpjQLA23vW8DHu2pBI4zOol38UdM+oCm1xg1oJ+qfzvNlAvj66/1T8WwaB7cRdv0RtP2wGjblNUyEiNDdvbs7rJa7Ruh6SQ+eElCz8Jp3kmMICjT6bwZCIoNDzBdX6mKm6G/z7MisRBAXiPBWo6QWB7GRz4+9U9JQmEqPsWCE0+5qe9NgwaLYASCxpYWQ+dxmzuo8hT0dad5dcZwbiQs099qJGmMYh9vM4Jd1Ruge/6qCi+RyOkiq4oQUD9q9c/51UddOIM9RRxQMSajE1NJ5O+VgaZJCsPv4+8GeVeCwWxPedFlocVAdXPPD73NHJONUHcHoa3GbSGJXaVApcc+z6xslX6Yt25zgffKs3aFIPY4qlQ3DmigY9pek4J2W9CPjx9qv3D825y8vizG2v1p6frssp6onPcgxSc5m64BCKni8e9UiHHcszj7wWPVGiY3VupwZ1EDa9cIG7HMpsqx7eKc6JeHPu8sj/mlcKQUtKkAUxhWM/ZVvBoIGCNmNb8yTkaKiBJdlZNhuLDArhF/RCZpPneG7VZ/0zpgOEdfrO4uTgkuQIq+ODKFHyq5LBaJI5b77lxE0SDEEThsoT50vX+8lIT+T7mVR9ko3hr7Q8H0lrUsaQN+1TO0Z+PDh94Hri4T6nGiRqBsXzfri2prTAdDF5S9oHAyaDQqscDmjLsMuZ2iL9mD05dKv6ofhoFNXEEHq77lm7wRMgM0hklVFpBQSwGfU/5CT/aN/15wNKim4DHmDPJeX/fXGh+V43Nc7SVUfKrWPl5SKbADtXBFvlW3XfjXEODybNAfrCQjivpuyptIUG3G2nwDSWg5doWSCBMFpyN 0O6wwZty KAOVLNNgsatXKDmg+rzrim53lRokvu/g7zeWgTgulVZkeldEszYEtU+uhMI8PBBVwyyweWUA7tSIjSDu/voHCZvP98yOhzH2fymX+gaRwMwxjEDlPVPG/o24bQjuGf7Gfy+b3sWRkvautQclx0w7iOu0V2bsn0kq10qO56QxVBLlg782CpzaNSjofOlzMYOGyKlLAIQ/RiOnsZBjcIVi3Si4h9HjV8REVVf7/ 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: Enable RW access to KPKEYS_PKEY_PGTABLES (used to map page table pages) if switching to KPKEYS_LVL_PGTABLES, otherwise only grant RO access. Signed-off-by: Kevin Brodsky --- arch/arm64/include/asm/kpkeys.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/include/asm/kpkeys.h b/arch/arm64/include/asm/kpkeys.h index e17f6df41873..4854e1f3babd 100644 --- a/arch/arm64/include/asm/kpkeys.h +++ b/arch/arm64/include/asm/kpkeys.h @@ -18,6 +18,8 @@ static inline bool arch_kpkeys_enabled(void) static inline u64 por_set_kpkeys_level(u64 por, int level) { por = por_set_pkey_perms(por, KPKEYS_PKEY_DEFAULT, POE_RXW); + por = por_set_pkey_perms(por, KPKEYS_PKEY_PGTABLES, + level == KPKEYS_LVL_PGTABLES ? POE_RW : POE_R); return por; }