From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752084AbdKKTW6 (ORCPT ); Sat, 11 Nov 2017 14:22:58 -0500 Received: from mout.web.de ([212.227.15.3]:57305 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751815AbdKKTWx (ORCPT ); Sat, 11 Nov 2017 14:22:53 -0500 Subject: [PATCH 1/3] ALSA: sgio2audio: Use common error handling code in two functions From: SF Markus Elfring To: alsa-devel@alsa-project.org, Arvind Yadav , Bhumika Goyal , Jaroslav Kysela , Mark Brown , Takashi Iwai Cc: LKML , kernel-janitors@vger.kernel.org References: Message-ID: <7d824a50-4333-a0d5-6a64-3c28f87b12e0@users.sourceforge.net> Date: Sat, 11 Nov 2017 20:21:41 +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: Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:7ru8/XjpDcvSG+LucIkcb2AhqIP9CyzSwY4z12S54ExvLAeMAZu buM0ztKqOc5lz+5LQhOL0hRrVy6agzb24Axp0bFnxVPKNpRzai8xGiYmpeiMQ4CIDvt9Aw4 +teDlYVC1peiteIvCvghafHMnngAmbGhqHAOSdyjO1BPY51w91cdiazufoK//G9xQHiH/uy +jUq3isxVW2YTUiH+wqGw== X-UI-Out-Filterresults: notjunk:1;V01:K0:JsMiix/0hro=:3O0chqfKceGLnVrBsPGsun 1cr8mupIMYYKJ1i02LQaF5A++gw+z5zaPbCxqcLwbu82FnOnvOl8gRcaK86xbiKbaIcELaeT3 EYjCEJnkZ+xzeCbNm0El+oLV1FimDVYoHRidfsuh6T7j7fPJz5CzLLgvXCXkvNFuIISvH7KgF pDJ2mqzkCMMGuaDtXdlPt4c/1Gv32X3ECNLe1Sm32KaMWmJ48ixFGBKLTGFotHTSSxW6qyvaL fN9NwY8OP3wkjaye47f5eD0sXZV/s+gNft4hCmmyMOKN5bpvfnqIVbZOjUA8t6Jz14yJ2DqyE 3dYjVtzGZq72Tf57gD7zx5XAxw+8qR20w4bjvd25u/OuCzVxmlP2y+0VYM2nTxSw148E26YlU ht9JjBA0AlwGF72cmeUnanyteLfTUWrs1VkBkqyvYhKu9Mzb9ez5sUDojdZ6dICRZ4cgB3mNk 7HpHt821NruMAk3r3JqTIjQmv9Gs7Qyu7Rv/7vtIPe7hQDcuKzwq5OkMXEiThgpET8edc0k6D 92i0B/kS+7v2mnBzCF/S9iEUZkyaSMClgOEYZcbqf0Omt836QujNJHl52wp3GNgNF+3ztH4+j UpHkyIIvjrgdklToBDz/NQunITdKaVZStuZbAIqz1k99xnepfjbIDpntutmaHgRcK3hsOstiv LAdINOUlbnuxNtRDs92dII3+qDAhFtkZbmp5heILB9rDj94+s4rt/g+S3Du3WVIR2i9sgyIrJ JK+DvaoIutC/ODixp4ST2DDiVGW0tJdWQ7ZZgdAh+LwyTvEvwFPfh1RD664bl0IrdfWL5kuDu SArbAhTwVZM2r5g9XAmJOwkcaflBH5Y20Xe2t4y8SU/WF7kWeg= 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 19:56:07 +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/mips/sgio2audio.c | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/sound/mips/sgio2audio.c b/sound/mips/sgio2audio.c index 71c942162c25..62715a01f507 100644 --- a/sound/mips/sgio2audio.c +++ b/sound/mips/sgio2audio.c @@ -893,18 +893,19 @@ static int snd_sgio2audio_create(struct snd_card *card, /* initialize the AD1843 codec */ err = ad1843_init(&chip->ad1843); - if (err < 0) { - snd_sgio2audio_free(chip); - return err; - } + if (err < 0) + goto free_chip; err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); - if (err < 0) { - snd_sgio2audio_free(chip); - return err; - } + if (err < 0) + goto free_chip; + *rchip = chip; return 0; + +free_chip: + snd_sgio2audio_free(chip); + return err; } static int snd_sgio2audio_probe(struct platform_device *pdev) @@ -918,21 +919,16 @@ static int snd_sgio2audio_probe(struct platform_device *pdev) return err; err = snd_sgio2audio_create(card, &chip); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; err = snd_sgio2audio_new_pcm(chip); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; + err = snd_sgio2audio_new_mixer(chip); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; strcpy(card->driver, "SGI O2 Audio"); strcpy(card->shortname, "SGI O2 Audio"); @@ -942,12 +938,15 @@ static int snd_sgio2audio_probe(struct platform_device *pdev) MACEISA_AUDIO3_MERR_IRQ); err = snd_card_register(card); - if (err < 0) { - snd_card_free(card); - return err; - } + if (err < 0) + goto free_card; + platform_set_drvdata(pdev, card); return 0; + +free_card: + snd_card_free(card); + return err; } static int snd_sgio2audio_remove(struct platform_device *pdev) -- 2.15.0