diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index f79aac7a12b5c4109875439f527aca016f9411a2..7b1311ac5f7ba86f22e5f80d4b231e042271bfd7 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -1268,7 +1268,7 @@ int __ref add_memory_resource(int nid, struct resource *res, bool online)
 
 error:
 	/* rollback pgdat allocation and others */
-	if (new_pgdat)
+	if (new_pgdat && pgdat)
 		rollback_node_hotadd(nid, pgdat);
 	memblock_remove(start, size);