2021-01-19 08:15:38

by Dinghao Liu

[permalink] [raw]
Subject: [PATCH] extcon: Fix error handling in extcon_dev_register

When devm_kcalloc() fails, we should execute device_unregister()
to unregister edev->dev from system.

Fixes: 046050f6e623e ("extcon: Update the prototype of extcon_register_notifier() with enum extcon")
Signed-off-by: Dinghao Liu <[email protected]>
---
drivers/extcon/extcon.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
index 0a6438cbb3f3..e7a9561a826d 100644
--- a/drivers/extcon/extcon.c
+++ b/drivers/extcon/extcon.c
@@ -1241,6 +1241,7 @@ int extcon_dev_register(struct extcon_dev *edev)
sizeof(*edev->nh), GFP_KERNEL);
if (!edev->nh) {
ret = -ENOMEM;
+ device_unregister(&edev->dev);
goto err_dev;
}

--
2.17.1


2021-02-26 06:07:11

by Chanwoo Choi

[permalink] [raw]
Subject: Re: [PATCH] extcon: Fix error handling in extcon_dev_register

Hi,

On 21. 1. 19. 오후 5:10, Dinghao Liu wrote:
> When devm_kcalloc() fails, we should execute device_unregister()
> to unregister edev->dev from system.
>
> Fixes: 046050f6e623e ("extcon: Update the prototype of extcon_register_notifier() with enum extcon")
> Signed-off-by: Dinghao Liu <[email protected]>
> ---
> drivers/extcon/extcon.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
> index 0a6438cbb3f3..e7a9561a826d 100644
> --- a/drivers/extcon/extcon.c
> +++ b/drivers/extcon/extcon.c
> @@ -1241,6 +1241,7 @@ int extcon_dev_register(struct extcon_dev *edev)
> sizeof(*edev->nh), GFP_KERNEL);
> if (!edev->nh) {
> ret = -ENOMEM;
> + device_unregister(&edev->dev);
> goto err_dev;
> }
>
>

Thanks for fixup. Applied it.

Thanks,
Chanwoo Choi