memory-hotplug: don't BUG() in register_memory_resource()
Out of memory condition is not a bug and while we can't add new memory in such case crashing the system seems wrong. Propagating the return value from register_memory_resource() requires interface change. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Acked-by: David Rientjes <rientjes@google.com> Cc: Tang Chen <tangchen@cn.fujitsu.com> Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Cc: Xishi Qiu <qiuxishi@huawei.com> Cc: Sheng Yong <shengyong1@huawei.com> Cc: Zhu Guihua <zhugh.fnst@cn.fujitsu.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: David Vrabel <david.vrabel@citrix.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
3e89e1c5ea
commit
6f754ba4cf
|
@ -131,7 +131,8 @@ static struct resource *register_memory_resource(u64 start, u64 size)
|
|||
{
|
||||
struct resource *res;
|
||||
res = kzalloc(sizeof(struct resource), GFP_KERNEL);
|
||||
BUG_ON(!res);
|
||||
if (!res)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
res->name = "System RAM";
|
||||
res->start = start;
|
||||
|
@ -140,7 +141,7 @@ static struct resource *register_memory_resource(u64 start, u64 size)
|
|||
if (request_resource(&iomem_resource, res) < 0) {
|
||||
pr_debug("System RAM resource %pR cannot be added\n", res);
|
||||
kfree(res);
|
||||
res = NULL;
|
||||
return ERR_PTR(-EEXIST);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
@ -1312,8 +1313,8 @@ int __ref add_memory(int nid, u64 start, u64 size)
|
|||
int ret;
|
||||
|
||||
res = register_memory_resource(start, size);
|
||||
if (!res)
|
||||
return -EEXIST;
|
||||
if (IS_ERR(res))
|
||||
return PTR_ERR(res);
|
||||
|
||||
ret = add_memory_resource(nid, res);
|
||||
if (ret < 0)
|
||||
|
|
Loading…
Reference in New Issue