diff options
author | Li Zefan | 2008-02-15 03:24:49 +0100 |
---|---|---|
committer | Roland Dreier | 2008-02-16 00:05:05 +0100 |
commit | c7482b81c8b524193d736488c149adbe27a7eb7f (patch) | |
tree | a9b68e294a9565335463fdceee8fc0543974d28d | |
parent | Linux 2.6.25-rc2 (diff) | |
download | kernel-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.c | 4 |
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); |