[RFC PATCH v2 09/19] x86/mm: Support GFP_ATOMIC in alloc_table_node()

From: Rick Edgecombe
Date: Mon Aug 30 2021 - 20:00:29 EST


For GFP_ATOMIC in alloc_table/_node(), use get_grouped_page_atomic().

Signed-off-by: Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx>
---
arch/x86/mm/pgtable.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index ef0b4ce95522..e65d69ad6e0c 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -52,7 +52,10 @@ struct page *alloc_table(gfp_t gfp)
return table;
}

- table = get_grouped_page(numa_node_id(), &gpc_pks);
+ if (gfp & GFP_ATOMIC)
+ table = get_grouped_page_atomic(numa_node_id(), &gpc_pks);
+ else
+ table = get_grouped_page(numa_node_id(), &gpc_pks);
if (!table)
return NULL;
__SetPageTable(table);
--
2.17.1