diff --git a/drivers/base/memory.c b/drivers/base/memory.c index 60c38f9cf1a7..c0d501a3a714 100644 --- a/drivers/base/memory.c +++ b/drivers/base/memory.c @@ -634,10 +634,9 @@ int register_memory(struct memory_block *memory) } ret = xa_err(xa_store(&memory_blocks, memory->dev.id, memory, GFP_KERNEL)); - if (ret) { - put_device(&memory->dev); + if (ret) device_unregister(&memory->dev); - } + return ret; }