Re: [PATCH v4] x86: Remove unnecessary kmap() from sgx_ioc_enclave_init()

From: Jarkko Sakkinen
Date: Sun Feb 07 2021 - 16:18:14 EST


On Fri, Feb 05, 2021 at 09:00:30AM -0800, ira.weiny@xxxxxxxxx wrote:
> From: Ira Weiny <ira.weiny@xxxxxxxxx>
>
> kmap is inefficient and we are trying to reduce the usage in the kernel.
> There is no readily apparent reason why initp_page needs to be allocated
> and kmap'ed() but sigstruct needs to be page aligned and token
> 512 byte aligned.
>
> kmalloc() can give us this alignment but we need to allocate PAGE_SIZE
> bytes to do so. Rather than change this kmap() to kmap_local_page() use
> kmalloc() instead.
>
> Remove the alloc_page()/kmap() and replace with kmalloc(PAGE_SIZE, ...)
> to get a page aligned kernel address to use.
>
> In addition add a comment to document the alignment requirements so that
> others like myself don't attempt to 'fix' this again.
>
> Cc: Dave Hansen <dave.hansen@xxxxxxxxx>
> Cc: Sean Christopherson <seanjc@xxxxxxxxxx>
> Cc: Jethro Beekman <jethro@xxxxxxxxxxxx>
> Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>

Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>

/Jarkko