Re: [RFC PATCH v3 05/10] x86/sgx: Save the size of each EPC section

Jarkko Sakkinen
2022-04-03T10:13:51Z

On Fri, Apr 01, 2022 at 10:24:04PM +0800, Cathy Zhang wrote:
> For SGX CPUSVN update process will check all EPC pages in each
> section to ensure they will be marked as unused, it requires to
> know the size of each EPC section to end the loop.

Why is the size required to end the loop? It's missing.

> Signed-off-by: Cathy Zhang <cathy.zhang@intel.com>
> ---
> arch/x86/kernel/cpu/sgx/sgx.h | 1 +
> arch/x86/kernel/cpu/sgx/main.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/arch/x86/kernel/cpu/sgx/sgx.h b/arch/x86/kernel/cpu/sgx/sgx.h
> index 0b036f19cca1..45ba6fcabfda 100644
> --- a/arch/x86/kernel/cpu/sgx/sgx.h
> +++ b/arch/x86/kernel/cpu/sgx/sgx.h
> @@ -63,6 +63,7 @@ struct sgx_epc_section {
> void *virt_addr;
> struct sgx_epc_page *pages;
> struct sgx_numa_node *node;
> + u64 size;
> };
>
> extern struct sgx_epc_section sgx_epc_sections[SGX_MAX_EPC_SECTIONS];
> diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c
> index 10360f06c0df..031c1402cd7e 100644
> --- a/arch/x86/kernel/cpu/sgx/main.c
> +++ b/arch/x86/kernel/cpu/sgx/main.c
> @@ -665,6 +665,7 @@ static bool __init sgx_setup_epc_section(u64 phys_addr, u64 size,
> }
>
> section->phys_addr = phys_addr;
> + section->size = size;
> xa_store_range(&sgx_epc_address_space, section->phys_addr,
> phys_addr + size - 1, section, GFP_KERNEL);
>
> --
> 2.17.1
>

BR, Jarkko