2016-11-22 17:26:54

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] usb: gadget: uvc: fix returnvar.cocci warnings

Hi Andrzej and Julia,

Could one of you please submit a patch to fix this ?

On Thursday 17 Sep 2015 13:18:04 Andrzej Pietrasiewicz wrote:
> Hi Julia,
>
> W dniu 17.09.2015 o 10:57, Julia Lawall pisze:
> > Coccinelle suggests the following patch. But the code is curious. Is the
> > function expected to always return a failure value?
>
> Thank you for catching this. The function is not expected to always
> return a failure value. Fortunately it does not matter anyway because
> the return value of the drop_link() operation is silently ignored by
> its caller in fs/configfs/symlink.c, functions configfs_symlink()
> and configfs_unlink(). For my comments see inline.
>
> > thanks,
> > julia
> >
> > On Thu, 17 Sep 2015, kbuild test robot wrote:
> >> TO: Andrzej Pietrasiewicz <[email protected]>
> >> CC: [email protected]
> >> CC: Felipe Balbi <[email protected]>
> >> CC: Laurent Pinchart <[email protected]>
> >> CC: "Greg Kroah-Hartman" <[email protected]>
> >> CC: [email protected]
> >> CC: [email protected]
> >>
> >> drivers/usb/gadget/function/uvc_configfs.c:866:5-8: Unneeded variable:
> >> "ret". Return "- EINVAL" on line 891>>
> >> Remove unneeded variable used to store return value.
> >>
> >> Generated by: scripts/coccinelle/misc/returnvar.cocci
> >>
> >> CC: Andrzej Pietrasiewicz <[email protected]>
> >> Signed-off-by: Fengguang Wu <[email protected]>
> >> ---
> >>
> >> Please take the patch only if it's a positive warning. Thanks!
> >>
> >> uvc_configfs.c | 3 +--
> >> 1 file changed, 1 insertion(+), 2 deletions(-)
> >>
> >> --- a/drivers/usb/gadget/function/uvc_configfs.c
> >> +++ b/drivers/usb/gadget/function/uvc_configfs.c
> >> @@ -863,7 +863,6 @@ static int uvcg_streaming_header_drop_li
> >> struct uvcg_streaming_header *src_hdr;
> >> struct uvcg_format *target_fmt = NULL;
> >> struct uvcg_format_ptr *format_ptr, *tmp;
> >> - int ret = -EINVAL;
> >>
> >> src_hdr = to_uvcg_streaming_header(src);
> >> mutex_lock(su_mutex); /* for navigating configfs hierarchy */
> >> @@ -888,7 +887,7 @@ static int uvcg_streaming_header_drop_li
> >> out:
> >> mutex_unlock(&opts->lock);
> >> mutex_unlock(su_mutex);
> >>
> >> - return ret;
> >> + return -EINVAL;
>
> return 0;

--
Regards,

Laurent Pinchart


2016-11-23 08:37:24

by Andrzej Pietrasiewicz

[permalink] [raw]
Subject: Re: [PATCH] usb: gadget: uvc: fix returnvar.cocci warnings

Hi Laurent,

Thanks for a reminder. Please see inline.

W dniu 22.11.2016 o 18:27, Laurent Pinchart pisze:
> Hi Andrzej and Julia,
>
> Could one of you please submit a patch to fix this ?
>
> On Thursday 17 Sep 2015 13:18:04 Andrzej Pietrasiewicz wrote:
>> Hi Julia,
>>
>> W dniu 17.09.2015 o 10:57, Julia Lawall pisze:
>>> Coccinelle suggests the following patch. But the code is curious. Is the
>>> function expected to always return a failure value?

As a matter of fact it seems it should not return anything at all,
because...

>>
>> Thank you for catching this. The function is not expected to always
>> return a failure value. Fortunately it does not matter anyway because

...because
>> the return value of the drop_link() operation is silently ignored by

And the Documentation/filesystems/configfs/configfs.txt says here:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/configfs/configfs.txt#n397

"When unlink(2) is called on the symbolic link, the source item is
notified via the ->drop_link() method. Like the ->drop_item() method,
this is a void function and cannot return failure."

The ->drop_item() is indeed a void function, the ->drop_link() is
actually not. This, together with the fact that the value of ->drop_link()
is silently ignored suggests, that it is the ->drop_link() return
type that should be corrected and changed to void.

@Joel: What is your opinion? Should return type be changed to void?
Is there any reason why it should still be declared int?

I'm sending a copy of this mail to target-devel and linux-nvme,
because other potentially affected users of configfs live there.

AP

2016-11-28 08:28:33

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] usb: gadget: uvc: fix returnvar.cocci warnings

On Wed, Nov 23, 2016 at 09:35:36AM +0100, Andrzej Pietrasiewicz wrote:
> The ->drop_item() is indeed a void function, the ->drop_link() is
> actually not. This, together with the fact that the value of ->drop_link()
> is silently ignored suggests, that it is the ->drop_link() return
> type that should be corrected and changed to void.

Please send a patch to change it.