Jarkko Sakkinen d2285493be x86/sgx: Add SGX page allocator functions
Add functions for runtime allocation and free.

This allocator and its algorithms are as simple as it gets.  They do a
linear search across all EPC sections and find the first free page.  They
are not NUMA-aware and only hand out individual pages.  The SGX hardware
does not support large pages, so something more complicated like a buddy
allocator is unwarranted.

The free function (sgx_free_epc_page()) implicitly calls ENCLS[EREMOVE],
which returns the page to the uninitialized state.  This ensures that the
page is ready for use at the next allocation.

Co-developed-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Jethro Beekman <jethro@fortanix.com>
Link: https://lkml.kernel.org/r/20201112220135.165028-10-jarkko@kernel.org
2020-11-17 14:36:13 +01:00
..
2020-10-23 10:06:38 -07:00
2020-11-15 09:46:36 -08:00
2020-10-23 10:06:38 -07:00
2020-10-23 10:06:38 -07:00
2020-10-23 10:06:38 -07:00
2020-10-23 10:06:38 -07:00
2020-10-23 10:06:38 -07:00
2020-10-23 10:06:38 -07:00
2020-10-23 10:06:38 -07:00
2020-11-15 09:46:36 -08:00
2020-11-15 09:46:36 -08:00