mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 13:53:33 +00:00
MIPS: vpe-cmp: fix possible memory leak while module exiting
[ Upstream commitc5ed1fe080
] dev_set_name() allocates memory for name, it need be freed when module exiting, call put_device() to give up reference, so that it can be freed in kobject_cleanup() when the refcount hit to 0. The vpe_device is static, so remove kfree() from vpe_device_release(). Fixes:17a1d523aa
("MIPS: APRP: Add VPE loader support for CMP platforms.") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
9d180e0bb2
commit
68223aa82d
1 changed files with 2 additions and 2 deletions
|
@ -75,7 +75,6 @@ ATTRIBUTE_GROUPS(vpe);
|
||||||
|
|
||||||
static void vpe_device_release(struct device *cd)
|
static void vpe_device_release(struct device *cd)
|
||||||
{
|
{
|
||||||
kfree(cd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct class vpe_class = {
|
static struct class vpe_class = {
|
||||||
|
@ -157,6 +156,7 @@ int __init vpe_module_init(void)
|
||||||
device_del(&vpe_device);
|
device_del(&vpe_device);
|
||||||
|
|
||||||
out_class:
|
out_class:
|
||||||
|
put_device(&vpe_device);
|
||||||
class_unregister(&vpe_class);
|
class_unregister(&vpe_class);
|
||||||
|
|
||||||
out_chrdev:
|
out_chrdev:
|
||||||
|
@ -169,7 +169,7 @@ void __exit vpe_module_exit(void)
|
||||||
{
|
{
|
||||||
struct vpe *v, *n;
|
struct vpe *v, *n;
|
||||||
|
|
||||||
device_del(&vpe_device);
|
device_unregister(&vpe_device);
|
||||||
class_unregister(&vpe_class);
|
class_unregister(&vpe_class);
|
||||||
unregister_chrdev(major, VPE_MODULE_NAME);
|
unregister_chrdev(major, VPE_MODULE_NAME);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue