On 02/09/2022 16:48, Abel Vesa wrote:
> Move the kref_init right after the allocation so that we can use
> fastrpc_map_put on any following error case.
>
> Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
> ---
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> drivers/misc/fastrpc.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
> index 6730aa324e10..5eececd9b6bd 100644
> --- a/drivers/misc/fastrpc.c
> +++ b/drivers/misc/fastrpc.c
> @@ -745,6 +745,8 @@ static int fastrpc_map_create(struct fastrpc_user *fl, int fd,
> return -ENOMEM;
>
> INIT_LIST_HEAD(&map->node);
> + kref_init(&map->refcount);
> +
> map->fl = fl;
> map->fd = fd;
> map->buf = dma_buf_get(fd);
> @@ -771,7 +773,6 @@ static int fastrpc_map_create(struct fastrpc_user *fl, int fd,
> map->size = len;
> map->va = sg_virt(map->table->sgl);
> map->len = len;
> - kref_init(&map->refcount);
>
> if (attr & FASTRPC_ATTR_SECUREMAP) {
> /*
> @@ -801,7 +802,7 @@ static int fastrpc_map_create(struct fastrpc_user *fl, int fd,
> attach_err:
> dma_buf_put(map->buf);
> get_err:
> - kfree(map);
> + fastrpc_map_put(map);
>
> return err;
> }