Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp658621pxk; Thu, 1 Oct 2020 10:40:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyMowvHLUt2ZjGC7xFiB4zL1Wly4EylD8EfU1IaAiT2EVoP6wHADL4++f845urpGsdOnr23 X-Received: by 2002:a17:906:a002:: with SMTP id p2mr8710267ejy.399.1601574027880; Thu, 01 Oct 2020 10:40:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601574027; cv=none; d=google.com; s=arc-20160816; b=Qp5iN7fmde/kJhzX4nd4YsLZHs7Pbsnz15kTf7I7Rx01k3d31vnnCJazYXrGwGcaPB s5p3PXdyNin1DE72XvIP5ZWgk/ImxCZ0ZGlawz/ySdNYzxXJv2LwCrVzk8Zbadeb8qt9 t/UXLjtkzkd+f9PQko3LAasgP6kpZd+46HqqNnNO4Z5IyMMk2lQREoRCwENI3uSFVlmS xPCEaLlDC4buCImwx+UUHaYVTsA6gtIAsx9du8ViIxFf39dND+Gp8NtoZYUB+vplEOam E47ZSXsPTrMI9lE/dTDQeBqOGRAfdw7C3yOA2HSE0X00Fd8Buod5pvQybv8/7XevmbCR eiNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :ironport-sdr:ironport-sdr; bh=kbHZHybsj8at6QS1ulKipeqy9aPf6RBKC+QsdXKgT/Y=; b=UBhozJh5LzM1EhGQ533L1LX6FyWxDfM7QMu9F+CRP00xDldNyGRFhHuqxd6Vb+sTxu d+5VHUZtUOr4vxx/scaQG/+aoAzN/zwEzBDjmswlbSWfmYRsmQHLDCbEuXEZzvFkNCjc yiRNx1HjiHauQIngU9Kemauy8RhbhdsDb6jhLBQOeqregczvptfxSUx+NW1r+uIerNup HmYI+QwSG7lzAhJLpt3f3F9sUzMD/3noa7qI+FGNK6vWc9SpMHqHtgDom3I9YlWOqr7C IAf7Muc724d2Pb2Fw7wiZkQDWB45JDOkKa/fX3epR+UySjKH3dfQKb/cqWhTGGSvkhZd fcrg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z9si3880120edp.477.2020.10.01.10.40.04; Thu, 01 Oct 2020 10:40:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732889AbgJARg5 (ORCPT + 99 others); Thu, 1 Oct 2020 13:36:57 -0400 Received: from mga05.intel.com ([192.55.52.43]:63052 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732096AbgJARg5 (ORCPT ); Thu, 1 Oct 2020 13:36:57 -0400 IronPort-SDR: fxp/O1jWVJY9DE/RrVEg0+VL1pBD8RPgk8n+ZJhdKOfI+RoAxfD+yuk/fUuNO7ESvp4L2IUEh8 vPAqNZZ33rrg== X-IronPort-AV: E=McAfee;i="6000,8403,9761"; a="247528213" X-IronPort-AV: E=Sophos;i="5.77,324,1596524400"; d="scan'208";a="247528213" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Oct 2020 10:36:55 -0700 IronPort-SDR: /tLPVE/O8p8boW2dIofsySD2WGZdOye2YFx6bfNPyidg/4aJloQeFUf7sqB1d7F/aGD8GRe8hs GjnBjhp4pu9A== X-IronPort-AV: E=Sophos;i="5.77,324,1596524400"; d="scan'208";a="339631820" Received: from sjchrist-coffee.jf.intel.com (HELO linux.intel.com) ([10.54.74.160]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Oct 2020 10:36:54 -0700 Date: Thu, 1 Oct 2020 10:36:53 -0700 From: Sean Christopherson To: Jarkko Sakkinen Cc: x86@kernel.org, linux-sgx@vger.kernel.org, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , Matthew Wilcox , Jethro Beekman , Haitao Huang , Chunyang Hui , Jordan Hand , Nathaniel McCallum , Seth Moore , Darren Kenny , Suresh Siddha , andriy.shevchenko@linux.intel.com, asapek@google.com, bp@alien8.de, cedric.xing@intel.com, chenalexchen@google.com, conradparker@google.com, cyhanish@google.com, dave.hansen@intel.com, haitao.huang@intel.com, josh@joshtriplett.org, kai.huang@intel.com, kai.svahn@intel.com, kmoy@google.com, ludloff@google.com, luto@kernel.org, nhorman@redhat.com, puiterwijk@redhat.com, rientjes@google.com, tglx@linutronix.de, yaozhangx@google.com Subject: Re: [PATCH v38 11/24] x86/sgx: Add SGX enclave driver Message-ID: <20201001173653.GG7474@linux.intel.com> References: <20200915112842.897265-1-jarkko.sakkinen@linux.intel.com> <20200915112842.897265-12-jarkko.sakkinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200915112842.897265-12-jarkko.sakkinen@linux.intel.com> User-Agent: Mutt/1.5.24 (2015-08-30) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 15, 2020 at 02:28:29PM +0300, Jarkko Sakkinen wrote: > +int __init sgx_drv_init(void) > +{ > + unsigned int eax, ebx, ecx, edx; > + u64 attr_mask, xfrm_mask; > + int ret; > + int i; > + > + if (!boot_cpu_has(X86_FEATURE_SGX_LC)) { > + pr_info("The public key MSRs are not writable.\n"); > + return -ENODEV; > + } > + > + cpuid_count(SGX_CPUID, 0, &eax, &ebx, &ecx, &edx); > + sgx_misc_reserved_mask = ~ebx | SGX_MISC_RESERVED_MASK; > + sgx_encl_size_max_64 = 1ULL << ((edx >> 8) & 0xFF); > + sgx_encl_size_max_32 = 1ULL << (edx & 0xFF); > + > + cpuid_count(SGX_CPUID, 1, &eax, &ebx, &ecx, &edx); > + > + attr_mask = (((u64)ebx) << 32) + (u64)eax; > + sgx_attributes_reserved_mask = ~attr_mask | SGX_ATTR_RESERVED_MASK; > + > + if (boot_cpu_has(X86_FEATURE_OSXSAVE)) { > + xfrm_mask = (((u64)edx) << 32) + (u64)ecx; > + > + for (i = 2; i < 64; i++) { > + cpuid_count(0x0D, i, &eax, &ebx, &ecx, &edx); > + if ((1UL << i) & xfrm_mask) Any reason not to use BIT()? The max size computations are arguably not bit operation, but XFRM is a set of bits. > + sgx_xsave_size_tbl[i] = eax + ebx; > + } > + > + sgx_xfrm_reserved_mask = ~xfrm_mask; > + } > + > + ret = misc_register(&sgx_dev_enclave); > + if (ret) { > + pr_err("Creating /dev/sgx/enclave failed with %d.\n", ret); > + return ret; > + } > + > + return 0; > +}