Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1677508pxp; Thu, 10 Mar 2022 09:54:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJyEcBodQnzf6Jmvw7aqKhVn+1EFkgT2J8wc6lQzqFXj6k4NghfXpzmks+B5wtw3pG2GrTlh X-Received: by 2002:a17:906:a147:b0:6a9:f492:3c4d with SMTP id bu7-20020a170906a14700b006a9f4923c4dmr5153270ejb.131.1646934860277; Thu, 10 Mar 2022 09:54:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646934860; cv=none; d=google.com; s=arc-20160816; b=j/sZi69vwcbVzWuI3Ku5GoUmLdbjpFx40bfBtDg7uDw/IR0XEJgLngH11aB5UFLlIO cMo1zhrUcZW+MWhg2my7IbXJ+iyl0Zd57RuCXaEluVclzk0VyWyPknqjV55ibyNq7kUr AyQoih8joVbA/qSYggudUue91kHRH0HXazqEM5PHTg3pLjUjnr/t10E6Ksmogivs5QI4 WKho+x5AtgzyRFcNUSl5nwT17eM9A1wni/lEwPRZ5vCxT/WBsP2c3QvnzommpoxtLLiu aTVaWiTQKRtKyUY8pPfdLenqRMGTdPn/9VRXXGj9U1U5acdh6x+ttjdkxXTpg2n2G4xY gPTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=T63PH9T3WjEIyzavF+cQhu2wqOT5NBgpX+Yqttf8bn0=; b=0H7+ZZWG8zYGs8XGhaplCfU7AOzGwgN2jXakLUbHYWKu4tJI73GJOQ+nZYqmlBEvA6 N6NiSiI7eBJNgXKUv4ZcF8UPe54Bct7V+qwVLR6aIq4eQA+tIYUt4zYCpE9evLOHb1xg 3ml90VksFjpbi04REDB8EizImQX6RIQy04U6juTtg4ChhIO/6K94wXpe17FHP2UmH1So E9GzNadcDxuEQDn06VmuTnHnbez03MVGxDRpjYEUM81Zmt/eQDmS6D2azq2eHAJLHn57 n5ypRZoy1JZyReY8fzoigglShuLyRhh81Furks2hpvY+QSUhUQyeTfopZnTw3oZkFiye Txqg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=eHi7yCOA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q8-20020a1709066b0800b006cff6489678si3743511ejr.976.2022.03.10.09.53.55; Thu, 10 Mar 2022 09:54:20 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=eHi7yCOA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244599AbiCJRWM (ORCPT + 99 others); Thu, 10 Mar 2022 12:22:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244545AbiCJRWA (ORCPT ); Thu, 10 Mar 2022 12:22:00 -0500 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B3926190B4D for ; Thu, 10 Mar 2022 09:20:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646932859; x=1678468859; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=rq/FeN2nuKAZ1KCoQdgO+h7HjUaX0XwjPfHzXcRVt6g=; b=eHi7yCOAkeC6Aqn9ddAlpF24sL4Ii3JLL8x5oTavk2PnpfvzC4d+fWhp J5jChDMgHfJG2dtzMqgOGxoazZe4/IsZIR9TfDRPYzbYO8StWlCYHE9eX InZMu8KpHHxdeDme+15wWjo2YoywSLFfkVusBFHJfJOC6eJh1oe9ikM6F TMpo3xAohstN3j9NjIGsgutf1mc6VxpWZHm24m2oY0s+bX900HApohbHk 2YvzM7gITqU05zEdUsD5Izr5zABFIBM3k9JWZyQexJEGfrYb+871/hvMG jNAYG0GwhT0wG892EltFXtWR0gy9Iuhv02+hjE/smL3zOBU+3NbXL1bB+ Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10282"; a="235261361" X-IronPort-AV: E=Sophos;i="5.90,171,1643702400"; d="scan'208";a="235261361" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 09:20:41 -0800 X-IronPort-AV: E=Sophos;i="5.90,171,1643702400"; d="scan'208";a="642639204" Received: from gdavids1-mobl.amr.corp.intel.com (HELO localhost) ([10.212.65.108]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 09:20:41 -0800 From: ira.weiny@intel.com To: Dave Hansen , "H. Peter Anvin" , Dan Williams Cc: Ira Weiny , Fenghua Yu , Rick Edgecombe , "Shankar, Ravi V" , linux-kernel@vger.kernel.org Subject: [PATCH V9 07/45] x86/pkeys: Add PKS CPU feature bit Date: Thu, 10 Mar 2022 09:19:41 -0800 Message-Id: <20220310172019.850939-8-ira.weiny@intel.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220310172019.850939-1-ira.weiny@intel.com> References: <20220310172019.850939-1-ira.weiny@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ira Weiny Memory Protection Keys (pkeys) provides a mechanism for enforcing page-based protections, but without requiring modification of the page tables when an application changes protection domains. The supervisor support for memory protection keys is referred to as PKS (Protection Keys Supervisor). Add the defines for the CPU support bit and the boilerplate disable infrastructure predicated on the new ARCH_ENABLE_SUPERVISOR_PKEYS Kconfig option. Signed-off-by: Ira Weiny --- Changes for V9 Dave Hansen New commit message Changes for V8 Split this out into it's own patch --- arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/include/asm/disabled-features.h | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h index 65d147974f8d..cb529b824a96 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -370,6 +370,7 @@ #define X86_FEATURE_MOVDIR64B (16*32+28) /* MOVDIR64B instruction */ #define X86_FEATURE_ENQCMD (16*32+29) /* ENQCMD and ENQCMDS instructions */ #define X86_FEATURE_SGX_LC (16*32+30) /* Software Guard Extensions Launch Control */ +#define X86_FEATURE_PKS (16*32+31) /* Protection Keys for Supervisor pages */ /* AMD-defined CPU features, CPUID level 0x80000007 (EBX), word 17 */ #define X86_FEATURE_OVERFLOW_RECOV (17*32+ 0) /* MCA overflow recovery support */ diff --git a/arch/x86/include/asm/disabled-features.h b/arch/x86/include/asm/disabled-features.h index 8f28fafa98b3..66fdad8f3941 100644 --- a/arch/x86/include/asm/disabled-features.h +++ b/arch/x86/include/asm/disabled-features.h @@ -44,6 +44,12 @@ # define DISABLE_OSPKE (1<<(X86_FEATURE_OSPKE & 31)) #endif /* CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS */ +#ifdef CONFIG_ARCH_ENABLE_SUPERVISOR_PKEYS +# define DISABLE_PKS 0 +#else +# define DISABLE_PKS (1<<(X86_FEATURE_PKS & 31)) +#endif + #ifdef CONFIG_X86_5LEVEL # define DISABLE_LA57 0 #else @@ -85,7 +91,7 @@ #define DISABLED_MASK14 0 #define DISABLED_MASK15 0 #define DISABLED_MASK16 (DISABLE_PKU|DISABLE_OSPKE|DISABLE_LA57|DISABLE_UMIP| \ - DISABLE_ENQCMD) + DISABLE_ENQCMD|DISABLE_PKS) #define DISABLED_MASK17 0 #define DISABLED_MASK18 0 #define DISABLED_MASK19 0 -- 2.35.1