| From e8b3aff2af810de823330d9bb127a8adee9166bb Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 4 Nov 2022 11:39:45 +0800 |
| Subject: MIPS: vpe-cmp: fix possible memory leak while module exiting |
| |
| From: Yang Yingliang <yangyingliang@huawei.com> |
| |
| [ Upstream commit c5ed1fe0801f0c66b0fbce2785239a5664629057 ] |
| |
| 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: 17a1d523aa58 ("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> |
| --- |
| arch/mips/kernel/vpe-cmp.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/arch/mips/kernel/vpe-cmp.c b/arch/mips/kernel/vpe-cmp.c |
| index 9268ebc0f61e..903c07bdc92d 100644 |
| --- a/arch/mips/kernel/vpe-cmp.c |
| +++ b/arch/mips/kernel/vpe-cmp.c |
| @@ -75,7 +75,6 @@ ATTRIBUTE_GROUPS(vpe); |
| |
| static void vpe_device_release(struct device *cd) |
| { |
| - kfree(cd); |
| } |
| |
| static struct class vpe_class = { |
| @@ -157,6 +156,7 @@ int __init vpe_module_init(void) |
| device_del(&vpe_device); |
| |
| out_class: |
| + put_device(&vpe_device); |
| class_unregister(&vpe_class); |
| |
| out_chrdev: |
| @@ -169,7 +169,7 @@ void __exit vpe_module_exit(void) |
| { |
| struct vpe *v, *n; |
| |
| - device_del(&vpe_device); |
| + device_unregister(&vpe_device); |
| class_unregister(&vpe_class); |
| unregister_chrdev(major, VPE_MODULE_NAME); |
| |
| -- |
| 2.35.1 |
| |