@@ -938,7 +938,7 @@ static int snp_set_vmsa(void *va, bool vmsa)
938
938
#define INIT_LDTR_ATTRIBS (SVM_SELECTOR_P_MASK | 2)
939
939
#define INIT_TR_ATTRIBS (SVM_SELECTOR_P_MASK | 3)
940
940
941
- static void * snp_alloc_vmsa_page (void )
941
+ static void * snp_alloc_vmsa_page (int cpu )
942
942
{
943
943
struct page * p ;
944
944
@@ -950,7 +950,7 @@ static void *snp_alloc_vmsa_page(void)
950
950
*
951
951
* Allocate an 8k page which is also 8k-aligned.
952
952
*/
953
- p = alloc_pages ( GFP_KERNEL_ACCOUNT | __GFP_ZERO , 1 );
953
+ p = alloc_pages_node ( cpu_to_node ( cpu ), GFP_KERNEL_ACCOUNT | __GFP_ZERO , 1 );
954
954
if (!p )
955
955
return NULL ;
956
956
@@ -1019,7 +1019,7 @@ static int wakeup_cpu_via_vmgexit(u32 apic_id, unsigned long start_ip)
1019
1019
* #VMEXIT of that vCPU would wipe out all of the settings being done
1020
1020
* here.
1021
1021
*/
1022
- vmsa = (struct sev_es_save_area * )snp_alloc_vmsa_page ();
1022
+ vmsa = (struct sev_es_save_area * )snp_alloc_vmsa_page (cpu );
1023
1023
if (!vmsa )
1024
1024
return - ENOMEM ;
1025
1025
@@ -1341,7 +1341,7 @@ static void __init alloc_runtime_data(int cpu)
1341
1341
{
1342
1342
struct sev_es_runtime_data * data ;
1343
1343
1344
- data = memblock_alloc (sizeof (* data ), PAGE_SIZE );
1344
+ data = memblock_alloc_node (sizeof (* data ), PAGE_SIZE , cpu_to_node ( cpu ) );
1345
1345
if (!data )
1346
1346
panic ("Can't allocate SEV-ES runtime data" );
1347
1347
0 commit comments