On Fri, Mar 21, 2025 at 02:34:40PM +0200, Elena Reshetova wrote: > In order to successfully execute ENCLS[EUPDATESVN], EPC must be empty. > SGX already has a variable sgx_nr_free_pages that tracks free > EPC pages. Add a new variable, sgx_nr_total_pages, that will keep > track of total number of EPC pages. It will be used in subsequent > patch to change the sgx_nr_free_pages into sgx_nr_used_pages and > allow an easy check for an empty EPC.
First off, remove "in subsequent patch". What does "change sgx_nr_free_pages into sgx_nr_used_pages" mean? > > Note: The serialization for sgx_nr_total_pages is not needed because > the variable is only updated during the initialization and there's no > concurrent access. > > Signed-off-by: Elena Reshetova <elena.reshet...@intel.com> > --- > arch/x86/kernel/cpu/sgx/main.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c > index 8ce352fc72ac..d5df67dab247 100644 > --- a/arch/x86/kernel/cpu/sgx/main.c > +++ b/arch/x86/kernel/cpu/sgx/main.c > @@ -33,6 +33,7 @@ static LIST_HEAD(sgx_active_page_list); > static DEFINE_SPINLOCK(sgx_reclaimer_lock); > > static atomic_long_t sgx_nr_free_pages = ATOMIC_LONG_INIT(0); > +static unsigned long sgx_nr_total_pages; > > /* Nodes with one or more EPC sections. */ > static nodemask_t sgx_numa_mask; > @@ -648,6 +649,8 @@ static bool __init sgx_setup_epc_section(u64 phys_addr, > u64 size, > list_add_tail(§ion->pages[i].list, &sgx_dirty_page_list); > } > > + sgx_nr_total_pages += nr_pages; > + > return true; > } > > -- > 2.45.2 > BR, Jarkko