 init/main.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/init/main.c b/init/main.c
index 44b2433334c7..0cf00943d755 100644
--- a/init/main.c
+++ b/init/main.c
@@ -560,9 +560,6 @@ asmlinkage void __init start_kernel(void)
 	early_boot_irqs_disabled = false;
 	local_irq_enable();
 
-	/* Interrupts are enabled now so all GFP allocations are safe. */
-	gfp_allowed_mask = __GFP_BITS_MASK;
-
 	kmem_cache_init_late();
 
 	/*
@@ -861,6 +858,9 @@ static int __init kernel_init(void * unused)
 	smp_init();
 	sched_init_smp();
 
+	/* Now we're finally set up and can do any allocation */
+	gfp_allowed_mask = __GFP_BITS_MASK;
+
 	do_basic_setup();
 
 	/* Open the /dev/console on the rootfs, this should never fail */
