From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-Id: <20130411202550.954957138@goodmis.org> Date: Thu, 11 Apr 2013 16:25:32 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Daniel Mack , Takashi Iwai Subject: [ 029/171 ] ALSA: snd-usb: mixer: propagate errors up the call chain References: <20130411202503.783159048@goodmis.org> Content-Disposition: inline; filename=0029-ALSA-snd-usb-mixer-propagate-errors-up-the-call-chai.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: 3.6.11.2 stable review patch. If anyone has any objections, please let me know. ------------------ From: Daniel Mack [ Upstream commit 4d7b86c98e445b075c2c4c3757eb6d3d6efbe72e ] 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 Cc: Signed-off-by: Takashi Iwai Signed-off-by: Steven Rostedt --- 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 298070e..c20a0c5 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -711,8 +711,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); @@ -1276,8 +1277,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.7.10.4