Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp1754301pxp; Thu, 10 Mar 2022 11:27:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJwkl4v0Aw/4Fj1/j/lEjK5J1H7ji9DdUFizAIArNf1KWzuF7CHdVQmf4nEYRr5k6wGf+z3u X-Received: by 2002:a17:902:e80f:b0:151:bdd2:cabc with SMTP id u15-20020a170902e80f00b00151bdd2cabcmr6629401plg.31.1646940450441; Thu, 10 Mar 2022 11:27:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646940450; cv=none; d=google.com; s=arc-20160816; b=i/bBcpeE/Lcn0AM7lA07t2zt+sTZmmw/rKa6x4tX5/J3E9x1K1aJ3jZQFXl7626rGD ECLt7KTFI0gb5WfiXpmKqGZn9CRE1oRsNyQDVhuMNChd0tMB5Dr6nb3jYHJzgwYpcKZu ky+onU0r9M6HT6kmqT+4A44NCID9Hj5zDAvZdYk9SUQGGs9ih+f3prl7PGZQbFboPc+5 7TDBwo7Eddn9sIMgT2/fBXzqimyO+u7wj2iw88kse7ptUsnXwsFVt7IveZRpuo71L+MH SHpb8NUTINYLVrVqafoYj9OyRvv5+38GVTB+whyDR73NyHJDJlf8Z3nq6p5c02i7zt05 8HnQ== 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=JNLVrRtMZViiuXGpztXCtn1GYOiqERY4rVfk4q2XZSI=; b=TF6pH/kF/3m2kdi4sYlyuR9NOFfcMcUwejvCWH08KCI6Xr+1pcexiIZUaE9VY1IQ++ 7MkOxASByPbnXZQtnRIqAantXrogLdpd6ZVqXzdSRs+0WM2ebcdXUohLQdOF5vo2XHKb kNJL2EVZFDjpYnft1rlAbPG3r+xU3b6khJgHD8sm/DX8QE1e0bVrk3uRsQPiEO8O5Enf A1QfOg12Fg08V11RW1B3QUsBGIWm7LKt5rTAo34a4tErwiJ++oivyWTScdHuQsed0Fja lzinu40iG5JvnpNjiek4ZbIzrn+KqGDZJax5G+jXwtfK7supEJkcZTYlj5f5TF69Y05P WUFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=UkHcOXNn; 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 i189-20020a6387c6000000b0037ffd5c84f4si5821483pge.479.2022.03.10.11.27.12; Thu, 10 Mar 2022 11:27:30 -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=UkHcOXNn; 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 S244518AbiCJRWe (ORCPT + 99 others); Thu, 10 Mar 2022 12:22:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244605AbiCJRWO (ORCPT ); Thu, 10 Mar 2022 12:22:14 -0500 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0EC8198EE0 for ; Thu, 10 Mar 2022 09:21:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646932867; x=1678468867; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qGe2ITb8rdP9lmNwk3HBu7sNalczSXfiao1EWBl3J7M=; b=UkHcOXNnZrjO3quahnIEKmdhidqeXGheaDH5YZEaPfugselp45bjw8G/ N4y/CouIpgpuvB6ctTdC1Fc5LyHX1dLGt+UXuEuZlUzfTPbgTSkPQbHLN K7WAOCufQYoJ6jZI40X19ScSvZmPfTMg7pn05moeHlnJKEUVODk4eQ9bg GcEA5VF9cdO9vKS1nGHd4zT3P20PwbVtMPKQLbnD68IJA0v9zoeY5kYbq 1WDSH3Kd2pN7z7XLruirHViVwz/5usBw4iGESeEgrStzgWzilAS5htyUk 8UGPycj5VT6E2tH9ECWMojWZPrf3AzaLKCO6iQjo8rCE/NevsUm9i1LgL Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10282"; a="252879360" X-IronPort-AV: E=Sophos;i="5.90,171,1643702400"; d="scan'208";a="252879360" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 09:21:07 -0800 X-IronPort-AV: E=Sophos;i="5.90,171,1643702400"; d="scan'208";a="611816018" Received: from gdavids1-mobl.amr.corp.intel.com (HELO localhost) ([10.212.65.108]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2022 09:21:07 -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 20/45] mm/pkeys: PKS testing, add a fault call back Date: Thu, 10 Mar 2022 09:19:54 -0800 Message-Id: <20220310172019.850939-21-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=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,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 PKS testing will need to know when a fault occurs due to it's actions so that it can properly determine functionality. Install a PKS fault handler for the PKS test pkey. Signed-off-by: Ira Weiny --- Changes for V9 New Patch --- arch/x86/mm/pkeys.c | 6 +++++- include/linux/pks.h | 7 +++++++ lib/pks/pks_test.c | 6 ++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/arch/x86/mm/pkeys.c b/arch/x86/mm/pkeys.c index a3b27b7811da..39867d39460b 100644 --- a/arch/x86/mm/pkeys.c +++ b/arch/x86/mm/pkeys.c @@ -243,7 +243,11 @@ static DEFINE_PER_CPU(u32, pkrs_cache); * #endif * }; */ -static const pks_key_callback pks_key_callbacks[PKS_KEY_MAX] = { 0 }; +static const pks_key_callback pks_key_callbacks[PKS_KEY_MAX] = { +#ifdef CONFIG_PKS_TEST + [PKS_KEY_TEST] = pks_test_fault_callback, +#endif +}; static bool pks_call_fault_callback(struct pt_regs *regs, unsigned long address, bool write, u16 key) diff --git a/include/linux/pks.h b/include/linux/pks.h index d0d8bf1aaa1d..208f88fcb48c 100644 --- a/include/linux/pks.h +++ b/include/linux/pks.h @@ -44,4 +44,11 @@ static inline void pks_set_readwrite(u8 pkey) {} #endif /* CONFIG_ARCH_ENABLE_SUPERVISOR_PKEYS */ +#ifdef CONFIG_PKS_TEST + +bool pks_test_fault_callback(struct pt_regs *regs, unsigned long address, + bool write); + +#endif /* CONFIG_PKS_TEST */ + #endif /* _LINUX_PKS_H */ diff --git a/lib/pks/pks_test.c b/lib/pks/pks_test.c index 2fc92aaa54e8..37f2cd7d0f56 100644 --- a/lib/pks/pks_test.c +++ b/lib/pks/pks_test.c @@ -85,6 +85,12 @@ static void debug_result(const char *label, int test_num, sd->last_test_pass ? "PASS" : "FAIL"); } +bool pks_test_fault_callback(struct pt_regs *regs, unsigned long address, + bool write) +{ + return false; +} + static void *alloc_test_page(u8 pkey) { return __vmalloc_node_range(PKS_TEST_MEM_SIZE, 1, VMALLOC_START, -- 2.35.1