aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorLi Zefan <lizf@cn.fujitsu.com>2008-02-14 21:24:49 -0500
committerRoland Dreier <rolandd@cisco.com>2008-02-15 18:05:05 -0500
commitc7482b81c8b524193d736488c149adbe27a7eb7f (patch)
treea9b68e294a9565335463fdceee8fc0543974d28d /drivers/infiniband
parent101142c37be8e5af9b847860219217e6b958c739 (diff)
IB: Fix return value in ib_device_register_sysfs()
If kobject_create_and_add() fails and returns NULL, the current code in ib_device_register_sysfs() does not set ret and hence returns 0. Set ret to -ENOMEM for this failure, so that the caller knows that ib_device_register_sysfs() actually failed. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/core/sysfs.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c
index c864ef70fdf9..5a4b2e65534b 100644
--- a/drivers/infiniband/core/sysfs.c
+++ b/drivers/infiniband/core/sysfs.c
@@ -686,8 +686,10 @@ int ib_device_register_sysfs(struct ib_device *device)
686 686
687 device->ports_parent = kobject_create_and_add("ports", 687 device->ports_parent = kobject_create_and_add("ports",
688 kobject_get(&class_dev->kobj)); 688 kobject_get(&class_dev->kobj));
689 if (!device->ports_parent) 689 if (!device->ports_parent) {
690 ret = -ENOMEM;
690 goto err_put; 691 goto err_put;
692 }
691 693
692 if (device->node_type == RDMA_NODE_IB_SWITCH) { 694 if (device->node_type == RDMA_NODE_IB_SWITCH) {
693 ret = add_port(device, 0); 695 ret = add_port(device, 0);