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

Dan Carpenter dan.carpenter at oracle.com
Wed Mar 24 19:50:47 CET 2021


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



More information about the Alsa-devel mailing list