diff --git a/drivers/base/node.c b/drivers/base/node.c index 666eb55c0774..cb1bbe3068ab 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c @@ -938,6 +938,11 @@ int __register_one_node(int nid) return -ENOMEM; error = register_node(node_devices[nid], nid); + if (error) { + node_devices[nid] = NULL; + kfree(node); + return error; + } /* link cpu under this node */ for_each_present_cpu(cpu) {