From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750961AbdKKNSf (ORCPT ); Sat, 11 Nov 2017 08:18:35 -0500 Received: from mout.web.de ([212.227.15.14]:57065 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750832AbdKKNSe (ORCPT ); Sat, 11 Nov 2017 08:18:34 -0500 Subject: [PATCH 1/3] ALSA: ml403-ac97cr: Use common error handling code in two functions From: SF Markus Elfring To: alsa-devel@alsa-project.org, Arvind Yadav , Bhumika Goyal , Jaroslav Kysela , Takashi Iwai Cc: LKML , kernel-janitors@vger.kernel.org References: <4c38a970-2407-3559-060d-501b8259b3fc@users.sourceforge.net> Message-ID: Date: Sat, 11 Nov 2017 14:17:18 +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: <4c38a970-2407-3559-060d-501b8259b3fc@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:QO9Ww6qf8rmgEN3lAwv95W1ZHpQvUaTaC1hHfhUV3MTzGQ0lXWy JNiDH37Cb6jYyRQvEASP/Mm0zzFPlWuIsPj9iwEDLGikVFJ159s0WSjybK6wb+OKb9HxDR+ wUkWzM5NiGtLb+6zwSN5URs599UdeCB3d3VpwCSqYSGkwkKsHzXvUuQ6GO25iL5JhOpYknX sW3P+1fQrLcWyZalX0egA== X-UI-Out-Filterresults: notjunk:1;V01:K0:M1BubaieNZw=:fGfhERMPp6xlJc+thMWEEp HlouXs6MBP+RqMCjIJChr2I7jTKDYJ6itEJfPp92fe5X1x7DuuWeL9qdcE4xcPsAjXx9ZJtQF 9XLHuAa2ddiAtksIzgwOELTnEJJP9NzyxUMQjGnVg0oc5AZT2vFiNqaXNvSHPLIMqsyN8jc2N at5bK95LLHIkKaameIE1EsM66g7jkUY9U5/MUvjjK8YPvEXc/tlfgebwlnaRtLRo42a5bsBaG Rz+fnXihvpRp3tro3+22hInEP/eWd8slRflHSGIxzbGfMsIy7Fc1TSHecwi6Y65gmGDf6kEy1 3GvI7JJxDXtof0dQ3LNJgn0bFC6saRHRvs0HkFylTeDF1Bp7dZylVj3/YiAmndZ1utcUI/oIE qfwyPufby1mC++Mg26IVii3HgnosvVeTdAPi7Aq7JluafCI3SMq/CqLtLPVoUplF8ldiHzKOz FDgA43dQ4yFwaKOY3mxARfVbQlkEC18FLqq2AlNAKTw0N9cpNmAt8W4uMCqc+wPvhSkL692pX rRfoOdFcK0wmo48NMQEWExzEpzGFP2XTtoZORIENrbNEuodXs0t0CE7I9Q62L6dBwgYKCl/+k nCaJsM5q2eIIKedyQv8OtjS2BOlS77RDfkzVYtGZd2uRWWwd+GyeKFKbUegqlRpyV53y7sq/Y 1+PnDEgtienA0j0YupPXOGUXl7owhrePFyXVXLx9jTS0/vklgDLhrGrrDRcMvVtSoH6QX0l1L ugeiD+p4JwvL5XD0/R9Sy+5PcjQOJG9xvyRwINprvn2qt+M+OXLF47V7F5b+UkZiNX+n/jYSz al8qELVWp5MutVPpiHLEQqH+GqBi0ukETPpcdYh1Tlkxvlu8Zk= 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 13:50:24 +0100 Add jump targets so that a bit of exception handling can be better reused at the end of these functions. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- sound/drivers/ml403-ac97cr.c | 52 ++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/sound/drivers/ml403-ac97cr.c b/sound/drivers/ml403-ac97cr.c index 18fd12996cf7..12a54bfde1a5 100644 --- a/sound/drivers/ml403-ac97cr.c +++ b/sound/drivers/ml403-ac97cr.c @@ -1144,8 +1144,7 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev, snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": " "unable to remap memory region (%pR)\n", resource); - snd_ml403_ac97cr_free(ml403_ac97cr); - return -EBUSY; + goto e_busy; } snd_printk(KERN_INFO SND_ML403_AC97CR_DRIVER ": " "remap controller memory region to " @@ -1157,8 +1156,7 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev, snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": " "unable to grab IRQ %d\n", irq); - snd_ml403_ac97cr_free(ml403_ac97cr); - return -EBUSY; + goto e_busy; } ml403_ac97cr->irq = irq; snd_printk(KERN_INFO SND_ML403_AC97CR_DRIVER ": " @@ -1170,8 +1168,7 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev, snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": " "unable to grab IRQ %d\n", irq); - snd_ml403_ac97cr_free(ml403_ac97cr); - return -EBUSY; + goto e_busy; } ml403_ac97cr->capture_irq = irq; snd_printk(KERN_INFO SND_ML403_AC97CR_DRIVER ": " @@ -1179,20 +1176,23 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev, ml403_ac97cr->capture_irq); err = snd_ml403_ac97cr_chip_init(ml403_ac97cr); - if (err < 0) { - snd_ml403_ac97cr_free(ml403_ac97cr); - return err; - } + if (err < 0) + goto free_data; err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, ml403_ac97cr, &ops); if (err < 0) { PDEBUG(INIT_FAILURE, "probe(): snd_device_new() failed!\n"); - snd_ml403_ac97cr_free(ml403_ac97cr); - return err; + goto free_data; } *rml403_ac97cr = ml403_ac97cr; return 0; + +e_busy: + err = -EBUSY; +free_data: + snd_ml403_ac97cr_free(ml403_ac97cr); + return err; } static void snd_ml403_ac97cr_mixer_free(struct snd_ac97 *ac97) @@ -1281,22 +1281,19 @@ static int snd_ml403_ac97cr_probe(struct platform_device *pfdev) err = snd_ml403_ac97cr_create(card, pfdev, &ml403_ac97cr); if (err < 0) { PDEBUG(INIT_FAILURE, "probe(): create failed!\n"); - snd_card_free(card); - return err; + goto free_card; } PDEBUG(INIT_INFO, "probe(): create done\n"); card->private_data = ml403_ac97cr; err = snd_ml403_ac97cr_mixer(ml403_ac97cr); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; + PDEBUG(INIT_INFO, "probe(): mixer done\n"); err = snd_ml403_ac97cr_pcm(ml403_ac97cr, 0); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; + PDEBUG(INIT_INFO, "probe(): PCM done\n"); strcpy(card->driver, SND_ML403_AC97CR_DRIVER); strcpy(card->shortname, "ML403 AC97 Controller Reference"); @@ -1306,13 +1303,16 @@ static int snd_ml403_ac97cr_probe(struct platform_device *pfdev) ml403_ac97cr->capture_irq, dev + 1); err = snd_card_register(card); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; + platform_set_drvdata(pfdev, card); PDEBUG(INIT_INFO, "probe(): (done)\n"); return 0; + +free_card: + snd_card_free(card); + return err; } static int snd_ml403_ac97cr_remove(struct platform_device *pfdev) -- 2.15.0