Re: [PATCH] goldfish: Return correct error code

From: Julia Lawall
Date: Sat Feb 13 2016 - 14:03:04 EST




On Sat, 13 Feb 2016, Amitoj Kaur Chawla wrote:

> The return value of devm_kzalloc on failure of allocation of memory
> should be -ENOMEM and not -1.
>
> Found using Coccinelle. A simplified version of the semantic patch
> used is:
>
> //<smpl>
> @@
> expression *e;
> @@
>
> e = devm_kzalloc(...);
> if (e == NULL) {
> ...
> return
> - -1
> + -ENOMEM
> ;
> }
> //</smpl>
>
> The single call site does not perform any checks on the return value,
> hence no change is required at the call site.
>
> Signed-off-by: Amitoj Kaur Chawla <amitoj1606@xxxxxxxxx>
> ---
> drivers/platform/goldfish/goldfish_pipe.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/platform/goldfish/goldfish_pipe.c b/drivers/platform/goldfish/goldfish_pipe.c
> index e7a29e2..f15e3c9 100644
> --- a/drivers/platform/goldfish/goldfish_pipe.c
> +++ b/drivers/platform/goldfish/goldfish_pipe.c
> @@ -222,7 +222,7 @@ static int setup_access_params_addr(struct platform_device *pdev,
>
> aps = devm_kzalloc(&pdev->dev, sizeof(struct access_params), GFP_KERNEL);
> if (!aps)
> - return -1;
> + return -ENOMEM;
>
> /* FIXME */
> paddr = __pa(aps);

There is another return -1 at the end of the function that should be
addressed. Maybe -EINVAL would be an appropriate value, if you don't find
evidence of anything else.

julia