From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752346AbdKKVla (ORCPT ); Sat, 11 Nov 2017 16:41:30 -0500 Received: from mout.web.de ([212.227.15.4]:49249 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751563AbdKKVl2 (ORCPT ); Sat, 11 Nov 2017 16:41:28 -0500 To: alsa-devel@alsa-project.org, Jaroslav Kysela , Takashi Iwai Cc: LKML , kernel-janitors@vger.kernel.org From: SF Markus Elfring Subject: [PATCH] ALSA: ac97_codec: Use common error handling code in snd_ac97_mixer() Message-ID: <18b1926e-d801-4b9b-abab-8474113f556f@users.sourceforge.net> Date: Sat, 11 Nov 2017 22:40:35 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:qMxTk1HesdMI+AFkmvhp+u1m3cPt3Ea4zcP/3kMUZIIS5hy2rTS FIpmPp9tRYwo5ikLYqRsW0AyNdjNApNpzbdWgvEf3HOOssJWwjcJ4JkPCZdSPGR0tOijnnA LZzxxM/nwmJPeQE1jKlT9L+xDxn/J6OSk6YB2O9lJFDeNjVjXoUNlFxRgI1XQv9LwgwzIbR TeGcMQQgXGUE1tg5rX6MA== X-UI-Out-Filterresults: notjunk:1;V01:K0:BbY3y7NOQgA=:3hp+hOe7wNgk0bJyz/oxZt D3wsQBbGO+UC7wKdiHgrpEqdrntzWf+G27uwwLvqcPdOEjH2gUbczZ9VsceHLVXjOlyCTj1z6 5RPHH4vJZkWhzyvC4GbYqxVKC4/a9Nl7wxvo4vXLc+8vSjN5/CT2slAGqgBd+h23FVAG0tbsS 3W6Skty+M+Bde9F5Dt8uHxgQoddr5xPXSR9MLGJ1GgXIt47xQlb6R93n3rb9bEL6hsf1W0MOY psKHo+gpgKqzEsMUmRsDA1Du1FW3J4Jfp/XYRa3vuhh30FTZ7JK/LEFoBoUM9KU1BKxVCzJY1 WtOzrLrJXSGC19S/Mo0j7noR56eKHwsQY4E+HzKXljxoRTiLG1wmCZI9pL/BP/xfY4pIZ3hep Tfbri+69q2yzrOuf57B8QthGaBcGlsAI+UCvyVbFmJXritzSTX+VV6mgwi8TRbsiSuxkziK2G 7nuklkrHFLHturBpxi3c4Hq2ET9i/cW6I4HyDJi04JKxM1/Taf16pIUWzsfNq43cBHa9XI7pZ HDnTgF6jXCfSNd+xl+KJhCGMBuxIwVim2DCs+ZMbl/uSCJFf8kuc4EPiSG4G7SALJS1XDgHQP TEH8kTsmDHF9nFlQLCjWAoAaf9bGCz7SlTvjLXpBj8xC8sPur2hQMHd7Y1tK8HjRG5luAGoAX 2VFBo16QWSYCMTz2JIgI+c3Me4RM6TNpWLz8xdI+yYuGoXl8++QIRXIBADi70eMYLPR2v/BmN CzwAc2FwX60VzXyOuryPc7VzHCGyRjQVIRkychahp1vw6wyTOOiVPr2bLBjVMv7Bkuxjj6Ras TZt9mMuQnuPErjjJnsnx/Yuy2HQpV6l5J3t+jYBmADN0iLjoaA= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Sat, 11 Nov 2017 22:30:51 +0100 * Add jump targets so that a bit of exception handling can be better reused at the end of this function. This issue was detected by using the Coccinelle software. * The script "checkpatch.pl" pointed information out like the following. ERROR: do not use assignment in if condition Thus fix three affected source code places. Signed-off-by: Markus Elfring --- sound/pci/ac97/ac97_codec.c | 50 +++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index 1ef7cdf1d3e8..2289cdcf2d48 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c @@ -2103,8 +2103,8 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, ac97_err(ac97, "AC'97 %d access is not valid [0x%x], removing mixer.\n", ac97->num, ac97->id); - snd_ac97_free(ac97); - return -EIO; + err = -EIO; + goto free_ac; } pid = look_for_codec_id(snd_ac97_codec_ids, ac97->id); if (pid) @@ -2138,8 +2138,8 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, ac97_err(ac97, "AC'97 %d access error (not audio or modem codec)\n", ac97->num); - snd_ac97_free(ac97); - return -EACCES; + err = -EACCES; + goto free_ac; } if (bus->ops->reset) // FIXME: always skipping? @@ -2267,14 +2267,12 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, } } sprintf(comp, "AC97a:%08x", ac97->id); - if ((err = snd_component_add(card, comp)) < 0) { - snd_ac97_free(ac97); - return err; - } - if (snd_ac97_mixer_build(ac97) < 0) { - snd_ac97_free(ac97); - return -ENOMEM; - } + err = snd_component_add(card, comp); + if (err < 0) + goto free_ac; + + if (snd_ac97_mixer_build(ac97) < 0) + goto e_nomem; } if (ac97_is_modem(ac97)) { char comp[16]; @@ -2287,24 +2285,28 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template, } } sprintf(comp, "AC97m:%08x", ac97->id); - if ((err = snd_component_add(card, comp)) < 0) { - snd_ac97_free(ac97); - return err; - } - if (snd_ac97_modem_build(card, ac97) < 0) { - snd_ac97_free(ac97); - return -ENOMEM; - } + err = snd_component_add(card, comp); + if (err < 0) + goto free_ac; + + if (snd_ac97_modem_build(card, ac97) < 0) + goto e_nomem; } if (ac97_is_audio(ac97)) update_power_regs(ac97); snd_ac97_proc_init(ac97); - if ((err = snd_device_new(card, SNDRV_DEV_CODEC, ac97, &ops)) < 0) { - snd_ac97_free(ac97); - return err; - } + err = snd_device_new(card, SNDRV_DEV_CODEC, ac97, &ops); + if (err < 0) + goto free_ac; + *rac97 = ac97; return 0; + +e_nomem: + err = -ENOMEM; +free_ac: + snd_ac97_free(ac97); + return err; } EXPORT_SYMBOL(snd_ac97_mixer); -- 2.15.0