Skip to content

Commit 5822e8c

Browse files
Yang Yingliangtsbogend
authored andcommitted
MIPS: vpe-mt: fix possible memory leak while module exiting
Afer commit 1fa5ae8 ("driver core: get rid of struct device's bus_id string array"), the name of device is allocated dynamically, 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: 1fa5ae8 ("driver core: get rid of struct device's bus_id string array") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
1 parent 0e2e121 commit 5822e8c

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

arch/mips/kernel/vpe-mt.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,6 @@ ATTRIBUTE_GROUPS(vpe);
313313

314314
static void vpe_device_release(struct device *cd)
315315
{
316-
kfree(cd);
317316
}
318317

319318
static struct class vpe_class = {
@@ -497,6 +496,7 @@ int __init vpe_module_init(void)
497496
device_del(&vpe_device);
498497

499498
out_class:
499+
put_device(&vpe_device);
500500
class_unregister(&vpe_class);
501501

502502
out_chrdev:
@@ -509,7 +509,7 @@ void __exit vpe_module_exit(void)
509509
{
510510
struct vpe *v, *n;
511511

512-
device_del(&vpe_device);
512+
device_unregister(&vpe_device);
513513
class_unregister(&vpe_class);
514514
unregister_chrdev(major, VPE_MODULE_NAME);
515515

0 commit comments

Comments
 (0)