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...@gmail.com>
> ---
> 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.
 

Reply via email to