diff --git a/kernel/resource.c b/kernel/resource.c
index 6aac5c60b25d7954f963c40fa15205e7705b02b4..4337063663efe39f8de666d16c591c84f66db0f7 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -523,7 +523,7 @@ static void __init __reserve_region_with_split(struct resource *root,
 {
 	struct resource *parent = root;
 	struct resource *conflict;
-	struct resource *res = kzalloc(sizeof(*res), GFP_KERNEL);
+	struct resource *res = kzalloc(sizeof(*res), GFP_ATOMIC);
 
 	if (!res)
 		return;