Re: [PATCH] ALSA: usb-audio: Fix missing return assignment

From: Dan Carpenter
Date: Wed Mar 24 2021 - 14:53:06 EST


On Wed, Mar 24, 2021 at 10:26:04PM +0500, Muhammad Usama Anjum wrote:
> Return value of usb_driver_claim_interface should not be ignored.
> Instead it should be stored in err variable and returned from
> this function.
>
> Signed-off-by: Muhammad Usama Anjum <musamaanjum@xxxxxxxxx>
> ---
> sound/usb/quirks.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index 9e5e37eff10e..dd32ceaef18a 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -427,10 +427,10 @@ static int create_autodetect_quirks(struct snd_usb_audio *chip,
>
> err = create_autodetect_quirk(chip, iface, driver);
> if (err >= 0)

create_autodetect_quirk() never returns positive values. Flip this
condition. (Always do error handling, don't do success handling).

if (err)
continue;


> - usb_driver_claim_interface(driver, iface, (void *)-1L);
> + err = usb_driver_claim_interface(driver, iface, (void *)-1L);

This is in a loop so only the last return value is used. Which seems
sort of weird and pointless that the last value would matter more than
the others.

> }
>
> - return 0;
> + return err;

regards,
dan carpenter