|
@@ -3612,18 +3612,12 @@ struct class cm_class = {
|
|
|
};
|
|
|
EXPORT_SYMBOL(cm_class);
|
|
|
|
|
|
-static void cm_remove_fs_obj(struct kobject *obj)
|
|
|
-{
|
|
|
- kobject_put(obj->parent);
|
|
|
- kobject_put(obj);
|
|
|
-}
|
|
|
-
|
|
|
static int cm_create_port_fs(struct cm_port *port)
|
|
|
{
|
|
|
int i, ret;
|
|
|
|
|
|
ret = kobject_init_and_add(&port->port_obj, &cm_port_obj_type,
|
|
|
- kobject_get(&port->cm_dev->dev_obj),
|
|
|
+ &port->cm_dev->dev_obj,
|
|
|
"%d", port->port_num);
|
|
|
if (ret) {
|
|
|
kfree(port);
|
|
@@ -3633,7 +3627,7 @@ static int cm_create_port_fs(struct cm_port *port)
|
|
|
for (i = 0; i < CM_COUNTER_GROUPS; i++) {
|
|
|
ret = kobject_init_and_add(&port->counter_group[i].obj,
|
|
|
&cm_counter_obj_type,
|
|
|
- kobject_get(&port->port_obj),
|
|
|
+ &port->port_obj,
|
|
|
"%s", counter_group_names[i]);
|
|
|
if (ret)
|
|
|
goto error;
|
|
@@ -3643,8 +3637,8 @@ static int cm_create_port_fs(struct cm_port *port)
|
|
|
|
|
|
error:
|
|
|
while (i--)
|
|
|
- cm_remove_fs_obj(&port->counter_group[i].obj);
|
|
|
- cm_remove_fs_obj(&port->port_obj);
|
|
|
+ kobject_put(&port->counter_group[i].obj);
|
|
|
+ kobject_put(&port->port_obj);
|
|
|
return ret;
|
|
|
|
|
|
}
|
|
@@ -3654,9 +3648,9 @@ static void cm_remove_port_fs(struct cm_port *port)
|
|
|
int i;
|
|
|
|
|
|
for (i = 0; i < CM_COUNTER_GROUPS; i++)
|
|
|
- cm_remove_fs_obj(&port->counter_group[i].obj);
|
|
|
+ kobject_put(&port->counter_group[i].obj);
|
|
|
|
|
|
- cm_remove_fs_obj(&port->port_obj);
|
|
|
+ kobject_put(&port->port_obj);
|
|
|
}
|
|
|
|
|
|
static void cm_add_one(struct ib_device *device)
|
|
@@ -3740,7 +3734,7 @@ error1:
|
|
|
ib_unregister_mad_agent(port->mad_agent);
|
|
|
cm_remove_port_fs(port);
|
|
|
}
|
|
|
- cm_remove_fs_obj(&cm_dev->dev_obj);
|
|
|
+ kobject_put(&cm_dev->dev_obj);
|
|
|
}
|
|
|
|
|
|
static void cm_remove_one(struct ib_device *device)
|
|
@@ -3767,7 +3761,7 @@ static void cm_remove_one(struct ib_device *device)
|
|
|
ib_unregister_mad_agent(port->mad_agent);
|
|
|
cm_remove_port_fs(port);
|
|
|
}
|
|
|
- cm_remove_fs_obj(&cm_dev->dev_obj);
|
|
|
+ kobject_put(&cm_dev->dev_obj);
|
|
|
}
|
|
|
|
|
|
static int __init ib_cm_init(void)
|