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: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
9824b8f113
commit
a7e80ce26c
@ -3748,6 +3748,7 @@ error1:
|
|||||||
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)
|
|||||||
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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user