Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp6238608iob; Tue, 10 May 2022 13:39:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy/MFszuxpr7NpaoMQJmCYTVeQIlqh0cZd+er7iUy8j4NIJROmMhc5XgGswY956N2NYWfDq X-Received: by 2002:a05:6402:2692:b0:427:ddba:d811 with SMTP id w18-20020a056402269200b00427ddbad811mr24717647edd.343.1652215187502; Tue, 10 May 2022 13:39:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652215187; cv=none; d=google.com; s=arc-20160816; b=z3dr5kcR907pxrFo+rqGG35TIg2H+mkIzsc3poD9jCszQyGvJX3I6PDSodnWn/CbD2 1pdL3Ps2yCRwSJV0/w/ls9QF95t93DlbcGjPZ0lDRx/scYZ5t4Qu6yVNOdF6cQLG1sU0 YNQYrUUgCZpi0OW7hC9/9cFRSb2muSi3YxsJTbL7wXEKJ131FATwo7oseGHFwOUdbAg/ 0gfJFlK0QDIdusCWRB7KqUyrUpupsN8xsx3YmWy1IZvgW9tldk68YgY/ZgO64nUnalnY ccmx7Bk+rIeCw1NPzysuHvYhiTSiL/ALpjQIBKVf3z4rQ7hyRL/3hTRRkwhX9scctlgG BOmA== 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=wZY8B095ZtWRbUExuFL1UqkKtfMr4VI6pYUxZVeJxv4=; b=aKgkHx3wsfyrNKgI6Oi1N281G5Hgy29Pptuhn9t25cPn78yFNgssZmCxCUPFRjAQwO dpVeLhpxmNoyl2ifG64kuJBLD1F5yoYFuA59Hkpte6+0/jJNSKXgnu438/NzFHnD5EFO swhLT5ffCYmO/L7p1UZvnq39zuPzMM0NGPx1TKxj2VvJMdNT0kIl5X+wWsen+G3K7EIn 407YYLYMMtixboqI+Cfg34aCSx+Q3IcmtPC3exXK4cteYhhpuwg+P+r9eyTglHEBkCiO aaX0Bk9xvZnvomGmYfz8ux+gktsEdktNu1GargVe3bg/e4FakrAPyMqXGSe1F7NDge80 0MHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=CD9ypbYz; 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 gt42-20020a1709072daa00b006f3997f2199si282709ejc.328.2022.05.10.13.39.23; Tue, 10 May 2022 13:39:47 -0700 (PDT) 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=CD9ypbYz; 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 S1348547AbiEJSOX (ORCPT + 99 others); Tue, 10 May 2022 14:14:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58116 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348542AbiEJSNT (ORCPT ); Tue, 10 May 2022 14:13:19 -0400 Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9893638E; Tue, 10 May 2022 11:09:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652206161; x=1683742161; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=J6vOWUAexaPJAAm0rLrk9+V8q/4zJYEqE6/X4bwnFeM=; b=CD9ypbYzRildjbC/oIa4Mzag89XPjEHuG9fVLCuNBNKBykSsanBowh6V gCzf12ODT9fKXJB6vf0XB2vnYjQHvbBqqyWcPu2aKz5S8teeS+8eHnP2D cnKSsjvntFXlQ6PnVSWrOhOffh1QS54VBMd8t+zIOSZpTt9j11J7f8eur h7Gm8G1b0RItu342310pzOioAwka+0GYjFVM89PlqGMiS1hIEAkL+2Le2 qpFOVy3aP6TKkhzho71gbXXxJMwowSydAZiuFGFjPBNFRW2AH76OQfZ5Z CWIAHN4MbBRGkxx4DOibIz7o1+MM25BDrRNPNjXv8s5MIfUwPNMwQ0aGt Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10343"; a="330057505" X-IronPort-AV: E=Sophos;i="5.91,214,1647327600"; d="scan'208";a="330057505" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 May 2022 11:09:16 -0700 X-IronPort-AV: E=Sophos;i="5.91,214,1647327600"; d="scan'208";a="541908752" Received: from rchatre-ws.ostc.intel.com ([10.54.69.144]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 May 2022 11:09:16 -0700 From: Reinette Chatre To: dave.hansen@linux.intel.com, jarkko@kernel.org, tglx@linutronix.de, bp@alien8.de, luto@kernel.org, mingo@redhat.com, linux-sgx@vger.kernel.org, x86@kernel.org, shuah@kernel.org, linux-kselftest@vger.kernel.org Cc: seanjc@google.com, kai.huang@intel.com, cathy.zhang@intel.com, cedric.xing@intel.com, haitao.huang@intel.com, mark.shanahan@intel.com, vijay.dhanraj@intel.com, hpa@zytor.com, linux-kernel@vger.kernel.org Subject: [PATCH V5 04/31] x86/sgx: Add wrapper for SGX2 EAUG function Date: Tue, 10 May 2022 11:08:40 -0700 Message-Id: <97a46754fe4764e908651df63694fb760f783d6e.1652137848.git.reinette.chatre@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-5.0 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_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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 Add a wrapper for the EAUG ENCLS leaf function used to add a page to an initialized enclave. EAUG: 1) Stores all properties of the new enclave page in the SGX hardware's Enclave Page Cache Map (EPCM). 2) Sets the PENDING bit in the EPCM entry of the enclave page. This bit is cleared by the enclave by invoking ENCLU leaf function EACCEPT or EACCEPTCOPY. Access from within the enclave to the new enclave page is not possible until the PENDING bit is cleared. Reviewed-by: Jarkko Sakkinen Signed-off-by: Reinette Chatre --- No changes since V4. Changes since V3: - Add Jarkko's Reviewed-by tag. Changes since V1: - Split original patch ("x86/sgx: Add wrappers for SGX2 functions") in three to introduce the SGX2 functions separately (Jarkko). - Rewrite commit message to include how the EPCM within the hardware is changed by the SGX2 function as well as any calling conditions (Jarkko). arch/x86/kernel/cpu/sgx/encls.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/x86/kernel/cpu/sgx/encls.h b/arch/x86/kernel/cpu/sgx/encls.h index 7a1ecf704ec1..99004b02e2ed 100644 --- a/arch/x86/kernel/cpu/sgx/encls.h +++ b/arch/x86/kernel/cpu/sgx/encls.h @@ -227,4 +227,10 @@ static inline int __emodt(struct sgx_secinfo *secinfo, void *addr) return __encls_ret_2(EMODT, secinfo, addr); } +/* Zero a page of EPC memory and add it to an initialized enclave. */ +static inline int __eaug(struct sgx_pageinfo *pginfo, void *addr) +{ + return __encls_2(EAUG, pginfo, addr); +} + #endif /* _X86_ENCLS_H */ -- 2.25.1