Re: [PATCH v2] net: iucv: Free memory obtained by kzalloc

From: Ursula Braun
Date: Thu Mar 01 2018 - 04:45:23 EST




On 03/01/2018 06:25 AM, Arvind Yadav wrote:
> Free memory, if afiucv_iucv_init is not successful. So calling
> put_device() before kfree(). This will decrement the last reference.
>
> Signed-off-by: Arvind Yadav <arvind.yadav.cs@xxxxxxxxx>
> ---
> changes in v2:
> Calling put_device() before kfree().
>
> net/iucv/af_iucv.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
> index 1e8cc7b..a07943f 100644
> --- a/net/iucv/af_iucv.c
> +++ b/net/iucv/af_iucv.c
> @@ -2433,9 +2433,12 @@ static int afiucv_iucv_init(void)
> af_iucv_dev->driver = &af_iucv_driver;
> err = device_register(af_iucv_dev);
> if (err)
> - goto out_driver;
> + goto out_iucv_dev;
> return 0;
>
> +out_iucv_dev:
> + put_device(af_iucv_dev);
> + kfree(af_iucv_dev);
> out_driver:
> driver_unregister(&af_iucv_driver);
> out_iucv:
>

Just put_device() should be sufficient here; please get rid of the kfree() call.