From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752655AbdIFTsa (ORCPT ); Wed, 6 Sep 2017 15:48:30 -0400 Received: from mout.web.de ([212.227.15.14]:55655 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752255AbdIFTs3 (ORCPT ); Wed, 6 Sep 2017 15:48:29 -0400 Subject: [PATCH 2/3] ALSA: ymfpci: Use common error handling code in snd_ymfpci_create() From: SF Markus Elfring To: alsa-devel@alsa-project.org, Bhumika Goyal , David Howells , Ingo Molnar , Jaroslav Kysela , Takashi Iwai Cc: LKML , kernel-janitors@vger.kernel.org References: Message-ID: Date: Wed, 6 Sep 2017 21:48:11 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.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:s0V1SsO0aWJUHMXrQ9UgnZ44y6qlOWdecfGPa0u0gRPTxnw3y8C anaOihwoA3UQwT14A7C94MGiTI5CBQIaUkgrqO3afTvCYO96qOAQipaZYOBE6O+4qvzWkbM 5hLNFhkUy79Ig0PEt6X8Wv7LzSx5qfzEhNBAjfq9y6rd3O0/24zsQyyx76lXSzpsKYlLzvP gj155STc+CEg/7TqUa3Gw== X-UI-Out-Filterresults: notjunk:1;V01:K0:aNNCSKL40i4=:TKruwB3GHOTw5OHjlLdbNT 9Z2Om/zI0IvFcvEbppD3OfHW2LbPPSthvDsyDi249/iGx8hnxd0zJj9OakSzkANGw9mely1zT ikFa0n2zlMCTPlgWxg61u+vyEybc9NuHsH/KkV3wwuN2u6wozoAy2Lb9D2SSQpsoHCCA+9WWT o29SW2TGXps63lPV8ZcmpiMyACnlN+rzm0rLTlhrxvSVKw/wBwcXGIHS0jatzkDgrGGFF8MlU +bhn7/ay2WEhueXIcCQV6mq4JFSTSYJZpU2yqR2o24u5nAtgWg5/VkTySjPkDp70dCzZL9uu/ A7+1kccCJ3mvd08GDvb5rAdAjw/w/GbqxDN9x8ecdtUP4qd3Opqfork/saA+8ksISTNKQg7u3 p3TXlGLtbeFzA6sfhOmH0VTnF+eLc6HQhH7phQjuxWiiAryFE7vlQG/JjlrfeDHCU9U7puQLv 5ad8QfoPAx26IyjjrE2lzNuaCpYIayCpvx23DYkL9Vho9mId/DxpZYYKCU5Z/dAb8rxZr7Uy+ x8wrSoaRF8zXMdlGb0loL8eqQKQH7/1sboqp4yko9LgGpukrA5sZ19ZNhQQ+1xjBN4MV3m39O GG6NjjeQuTfTc/xQeUdS96mQZE/qf94XVqgsTU/a/5JLeu2QwNWQp2AOs6a7x4NCLrq99em3B j9FffiY0bA8/Yi0K0m8wUIAbKhBI4MWiU1NSm6jBig4TDY0IEjMM48xeSLJs1gkO/LQNNzXpf SiFEDA0BkKkhbF/R8xVQpoIZyu8fM7HGpp6dTllI8BJgiMxJkoFZdJpVUfehk19nq8jKP4xu6 687QAVrudch6HKUQIpmZ8m2UsUV2LoM5/5iexwmPSnZ1J0xzqw= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Wed, 6 Sep 2017 21:12:51 +0200 * 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. * The script "checkpatch.pl" pointed information out like the following. ERROR: do not use assignment in if condition Thus fix a few source code places. Signed-off-by: Markus Elfring --- sound/pci/ymfpci/ymfpci_main.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index edfd58248082..8ca2e41e5827 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -2399,59 +2399,60 @@ int snd_ymfpci_create(struct snd_card *card, dev_err(chip->card->dev, "unable to grab memory region 0x%lx-0x%lx\n", chip->reg_area_phys, chip->reg_area_phys + 0x8000 - 1); - snd_ymfpci_free(chip); - return -EBUSY; + err = -EBUSY; + goto free_chip; } if (request_irq(pci->irq, snd_ymfpci_interrupt, IRQF_SHARED, KBUILD_MODNAME, chip)) { dev_err(chip->card->dev, "unable to grab IRQ %d\n", pci->irq); - snd_ymfpci_free(chip); - return -EBUSY; + err = -EBUSY; + goto free_chip; } chip->irq = pci->irq; snd_ymfpci_aclink_reset(pci); if (snd_ymfpci_codec_ready(chip, 0) < 0) { - snd_ymfpci_free(chip); - return -EIO; + err = -EIO; + goto free_chip; } err = snd_ymfpci_request_firmware(chip); if (err < 0) { dev_err(chip->card->dev, "firmware request failed: %d\n", err); - snd_ymfpci_free(chip); - return err; + goto free_chip; } snd_ymfpci_download_image(chip); udelay(100); /* seems we need a delay after downloading image.. */ if (snd_ymfpci_memalloc(chip) < 0) { - snd_ymfpci_free(chip); - return -EIO; + err = -EIO; + goto free_chip; } - if ((err = snd_ymfpci_ac3_init(chip)) < 0) { - snd_ymfpci_free(chip); - return err; - } + err = snd_ymfpci_ac3_init(chip); + if (err < 0) + goto free_chip; #ifdef CONFIG_PM_SLEEP chip->saved_regs = kmalloc(YDSXGR_NUM_SAVED_REGS * sizeof(u32), GFP_KERNEL); if (chip->saved_regs == NULL) { - snd_ymfpci_free(chip); - return -ENOMEM; + err = -ENOMEM; + goto free_chip; } #endif - if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { - snd_ymfpci_free(chip); - return err; - } + err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); + if (err < 0) + goto free_chip; snd_ymfpci_proc_init(card, chip); *rchip = chip; return 0; + +free_chip: + snd_ymfpci_free(chip); + return err; } -- 2.14.1