[alsa-devel] [PATCH 1/2] ALSA: snd-usb: mixer: propagate errors up the call chain

Takashi Iwai tiwai at suse.de
Wed Mar 20 08:45:31 CET 2013


At Tue, 19 Mar 2013 21:09:24 +0100,
Daniel Mack wrote:
> 
> In check_input_term() and parse_audio_feature_unit(), propagate the
> error value that has been returned by a failing function instead of
> -EINVAL. That helps cleaning up the error pathes in the mixer.
> 
> Signed-off-by: Daniel Mack <zonque at gmail.com>

Applied both patches now with Cc to stable.
Thanks.


Takashi


> ---
>  sound/usb/mixer.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> index 638e7f7..db30d02 100644
> --- a/sound/usb/mixer.c
> +++ b/sound/usb/mixer.c
> @@ -715,8 +715,9 @@ static int check_input_term(struct mixer_build *state, int id, struct usb_audio_
>  		case UAC2_CLOCK_SELECTOR: {
>  			struct uac_selector_unit_descriptor *d = p1;
>  			/* call recursively to retrieve the channel info */
> -			if (check_input_term(state, d->baSourceID[0], term) < 0)
> -				return -ENODEV;
> +			err = check_input_term(state, d->baSourceID[0], term);
> +			if (err < 0)
> +				return err;
>  			term->type = d->bDescriptorSubtype << 16; /* virtual type */
>  			term->id = id;
>  			term->name = uac_selector_unit_iSelector(d);
> @@ -1356,8 +1357,9 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void
>  		return err;
>  
>  	/* determine the input source type and name */
> -	if (check_input_term(state, hdr->bSourceID, &iterm) < 0)
> -		return -EINVAL;
> +	err = check_input_term(state, hdr->bSourceID, &iterm);
> +	if (err < 0)
> +		return err;
>  
>  	master_bits = snd_usb_combine_bytes(bmaControls, csize);
>  	/* master configuration quirks */
> -- 
> 1.8.1.4
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 


More information about the Alsa-devel mailing list