summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLi Zefan2008-02-15 03:24:49 +0100
committerRoland Dreier2008-02-16 00:05:05 +0100
commitc7482b81c8b524193d736488c149adbe27a7eb7f (patch)
treea9b68e294a9565335463fdceee8fc0543974d28d
parentLinux 2.6.25-rc2 (diff)
downloadkernel-qcow2-linux-c7482b81c8b524193d736488c149adbe27a7eb7f.tar.gz
kernel-qcow2-linux-c7482b81c8b524193d736488c149adbe27a7eb7f.tar.xz
kernel-qcow2-linux-c7482b81c8b524193d736488c149adbe27a7eb7f.zip
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>
-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)
device->ports_parent = kobject_create_and_add("ports",
kobject_get(&class_dev->kobj));
- if (!device->ports_parent)
+ if (!device->ports_parent) {
+ ret = -ENOMEM;
goto err_put;
+ }
if (device->node_type == RDMA_NODE_IB_SWITCH) {
ret = add_port(device, 0);