Commit a7e80ce2 authored by Hefty, Sean's avatar Hefty, Sean Committed by Roland Dreier

IB/cm: Correctly free cm_device structure

commit 110cf374 ("infiniband: make cm_device use a struct device and
not a kobject.") introduced a memory leak, since it deleted
cm_release_dev_obj(), which was where cm_dev was freed.  Fix this by
freeing the leaked structure after calling device_unregister().
Signed-off-by: default avatarSean Hefty <sean.hefty@intel.com>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent 9824b8f1
...@@ -3748,6 +3748,7 @@ static void cm_add_one(struct ib_device *ib_device) ...@@ -3748,6 +3748,7 @@ static void cm_add_one(struct ib_device *ib_device)
cm_remove_port_fs(port); cm_remove_port_fs(port);
} }
device_unregister(cm_dev->device); device_unregister(cm_dev->device);
kfree(cm_dev);
} }
static void cm_remove_one(struct ib_device *ib_device) static void cm_remove_one(struct ib_device *ib_device)
...@@ -3776,6 +3777,7 @@ static void cm_remove_one(struct ib_device *ib_device) ...@@ -3776,6 +3777,7 @@ static void cm_remove_one(struct ib_device *ib_device)
cm_remove_port_fs(port); cm_remove_port_fs(port);
} }
device_unregister(cm_dev->device); device_unregister(cm_dev->device);
kfree(cm_dev);
} }
static int __init ib_cm_init(void) static int __init ib_cm_init(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment