From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756033AbdKNRq3 (ORCPT ); Tue, 14 Nov 2017 12:46:29 -0500 Received: from mout.web.de ([212.227.15.3]:51247 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752510AbdKNRqV (ORCPT ); Tue, 14 Nov 2017 12:46:21 -0500 Subject: [PATCH 2/3] ALSA: ens1370: Use common error handling code in snd_audiopci_probe() From: SF Markus Elfring To: alsa-devel@alsa-project.org, Bhumika Goyal , Colin Ian King , David Howells , Jaroslav Kysela , Takashi Iwai Cc: LKML , kernel-janitors@vger.kernel.org References: <8bcf1ada-f44c-cb83-0890-adc8ae8edda0@users.sourceforge.net> Message-ID: <528a9443-b098-4815-6996-83524286e55c@users.sourceforge.net> Date: Tue, 14 Nov 2017 18:45:39 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <8bcf1ada-f44c-cb83-0890-adc8ae8edda0@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:vAjQQ/q2djJQB6pQyZNNvwX77hDDw4xQN7B0+fD1/KngRZ0vAmA I7Hooyp3EE1VbvP0GUtmnegzMX92Ur9yqW1MG1NHo+cqJ+N8XVrRgWtlQC7QOqKAX8lUHKf +NMNw1p5t4rZO08x7p0Pt5fkvHByfu+osniLu/LaCJ1Mn/GXlMxz/9g+6hQF0pSgAxaPEzc sYD1NGraQzJjoBupZ/aRA== X-UI-Out-Filterresults: notjunk:1;V01:K0:G9ZGZQdTFWk=:wW2Wa217+sjg6uLF/lHL56 F5tC+bmmYTrpjE1ln4pgAjCqI4jl6c4k+lJU+CQIUkx1R6Khi3boy/MTS7gT+vFrKtbb9gzJt ba9zD8qg+n+vQp/ug3lqErR9fdiYN/e07PEyFfwuMUsECZ0fQock9xR1FaGALcT/Mo0WLd2fK 8pb+lAYF/vk+HQaOSgdJgFBarhmcCcRV0U4JQelyML5rHfiOozdkbGMK3g4X//EqWmcLRgH02 GPzufK44al9zMWaUqYegUEEI36o7XFGxu6uR4VptajD4zLwJbe42WVLFHWd0vRZpsiyWqiApP 5l+7h6wW4pcdfj5v1GJneY1Ii3aM6c0LvEf/WtE4WysuE8Bd1KgllYogshIZzAQ0F9VfYJ631 qPw8Cuhc0wqSjIQ+cqsCQgZb7R5w7xDvECXbJcN0znW1lFIC0U0cZx+kHhpDoQ4/n05qVtlZI 7BvEB7kQQKznL4ks2Z1Tk7JSsHe6HsBCyW+D6v5dWdeWAlDy2GjCZ1rTUAdeXdiR7iQpWCiIe p1iYwsdaxgUYfk8oFqDoyZuE3BR1wm+Nca5ocX9xMUP9s5qhmALjb9NE5hwl1KzFOlNh7A3qM 9hg9DWXZcPlDh5IzOHTby5HYmVEDNXGDWUHP/XeSemYj+gFdhTYEmyxORmz2xIESrVO7LnENO SqbpV8RSK8jU3ZbxZE1vXrc6c16sDRo/H8MGDhMb0WCyOArbzL7oMPBwL/KbIOs4ZxkbplSuV dKmOSmxivT2Re5lvk4kOUu0H0toTG4VzvkQM+R7aJCPYNntQA3xqTpY26wb4dYobpTd6tc3oc rEIefCU0EjNAK+nKzrFPmUIvgcAN2NnAm3nIG3OnFXRGcW9niw= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Tue, 14 Nov 2017 18:15:36 +0100 Add a jump target 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. Signed-off-by: Markus Elfring --- sound/pci/ens1370.c | 49 +++++++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index 7cd7cacdcc28..55c5173036d3 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c @@ -2414,42 +2414,33 @@ static int snd_audiopci_probe(struct pci_dev *pci, return err; err = snd_ensoniq_create(card, pci, &ensoniq); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; + card->private_data = ensoniq; pcm_devs[0] = 0; pcm_devs[1] = 1; #ifdef CHIP1370 err = snd_ensoniq_1370_mixer(ensoniq); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; #endif #ifdef CHIP1371 err = snd_ensoniq_1371_mixer(ensoniq, spdif[dev], lineio[dev]); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; #endif err = snd_ensoniq_pcm(ensoniq, 0); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; + err = snd_ensoniq_pcm2(ensoniq, 1); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; + err = snd_ensoniq_midi(ensoniq, 0); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; snd_ensoniq_create_gameport(ensoniq, dev); @@ -2463,14 +2454,16 @@ static int snd_audiopci_probe(struct pci_dev *pci, ensoniq->irq); err = snd_card_register(card); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; pci_set_drvdata(pci, card); dev++; return 0; + +free_card: + snd_card_free(card); + return err; } static void snd_audiopci_remove(struct pci_dev *pci) -- 2.15.0