[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <79867568-c21f-8a09-d06e-360b1b925dd5@fortanix.com>
Date: Sat, 3 Nov 2018 01:07:27 +0000
From: Jethro Beekman <jethro@...tanix.com>
To: Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com>,
"x86@...nel.org" <x86@...nel.org>,
"platform-driver-x86@...r.kernel.org"
<platform-driver-x86@...r.kernel.org>,
"linux-sgx@...r.kernel.org" <linux-sgx@...r.kernel.org>
CC: "dave.hansen@...el.com" <dave.hansen@...el.com>,
"sean.j.christopherson@...el.com" <sean.j.christopherson@...el.com>,
"nhorman@...hat.com" <nhorman@...hat.com>,
"npmccallum@...hat.com" <npmccallum@...hat.com>,
"serge.ayoun@...el.com" <serge.ayoun@...el.com>,
"shay.katz-zamir@...el.com" <shay.katz-zamir@...el.com>,
"haitao.huang@...el.com" <haitao.huang@...el.com>,
"mark.shanahan@...el.com" <mark.shanahan@...el.com>,
"andriy.shevchenko@...ux.intel.com"
<andriy.shevchenko@...ux.intel.com>,
Suresh Siddha <suresh.b.siddha@...el.com>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
"H. Peter Anvin" <hpa@...or.com>,
Reinette Chatre <reinette.chatre@...el.com>,
"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
"open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v15 16/23] x86/sgx: Enumerate and track EPC sections
On 2018-11-02 16:11, Jarkko Sakkinen wrote:
> diff --git a/arch/x86/kernel/cpu/intel_sgx.c b/arch/x86/kernel/cpu/intel_sgx.c
> new file mode 100644
> index 000000000000..b86aa4111592
> --- /dev/null
> +++ b/arch/x86/kernel/cpu/intel_sgx.c
>
> ...
>
> +static __init int sgx_page_cache_init(void)
> +{
> + u32 eax, ebx, ecx, edx, type;
> + u64 pa, size;
> + int ret;
> + int i;
> +
> + BUILD_BUG_ON(SGX_MAX_EPC_SECTIONS > (SGX_EPC_SECTION_MASK + 1));
> +
> + for (i = 0; i < SGX_MAX_EPC_SECTIONS; i++) {
Perhaps print a warning if there are more than SGX_MAX_EPC_SECTIONS
sections reported by CPUID.
> + cpuid_count(SGX_CPUID, i + SGX_CPUID_FIRST_VARIABLE_SUB_LEAF,
> + &eax, &ebx, &ecx, &edx);
> +
> + type = eax & SGX_CPUID_SUB_LEAF_TYPE_MASK;
> + if (type == SGX_CPUID_SUB_LEAF_INVALID)
> + break;
> + if (type != SGX_CPUID_SUB_LEAF_EPC_SECTION) {
> + pr_err_once("sgx: Unknown sub-leaf type: %u\n", type);
> + continue;
> + }
> +
> + pa = sgx_calc_section_metric(eax, ebx);
> + size = sgx_calc_section_metric(ecx, edx);
> + pr_info("sgx: EPC section 0x%llx-0x%llx\n", pa, pa + size - 1);
> +
> + ret = sgx_init_epc_section(pa, size, i, &sgx_epc_sections[i]);
> + if (ret) {
> + sgx_page_cache_teardown();
> + return ret;
> + }
> +
> + sgx_nr_epc_sections++;
> + }
> +
> + if (!sgx_nr_epc_sections) {
> + pr_err("sgx: There are zero EPC sections.\n");
> + return -ENODEV;
> + }
> +
> + return 0;
> +}
--
Jethro Beekman | Fortanix
Download attachment "smime.p7s" of type "application/pkcs7-signature" (3990 bytes)
Powered by blists - more mailing lists