From patchwork Wed Nov 15 09:30:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SF Markus Elfring X-Patchwork-Id: 10059095 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 3F7D96023A for ; Wed, 15 Nov 2017 09:30:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3EAB629E1F for ; Wed, 15 Nov 2017 09:30:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 334EE29E65; Wed, 15 Nov 2017 09:30:49 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7F68329E1F for ; Wed, 15 Nov 2017 09:30:48 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 8C897267574; Wed, 15 Nov 2017 10:30:46 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id CC949267575; Wed, 15 Nov 2017 10:30:44 +0100 (CET) Received: from mout.web.de (mout.web.de [212.227.17.11]) by alsa0.perex.cz (Postfix) with ESMTP id 25773266E67 for ; Wed, 15 Nov 2017 10:30:42 +0100 (CET) Received: from [192.168.1.3] ([77.182.217.107]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0LeLSr-1eySVH1HAL-00qAUA; Wed, 15 Nov 2017 10:30:38 +0100 From: SF Markus Elfring To: alsa-devel@alsa-project.org, Bhumika Goyal , Jaroslav Kysela , Takashi Iwai References: Message-ID: <28d6e644-fe54-ecd9-6a2a-efc855299faa@users.sourceforge.net> Date: Wed, 15 Nov 2017 10:30:37 +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-Language: en-GB X-Provags-ID: V03:K0:Haj4McdZcDsaBo8dNOKeUYEuQaew4vCBuccR4RufLeSFCEFfVHu vCOIlEYIRlLFeyha7J+1lnX9gtL5cFDD36mKczhbOx8Iawr+s0NaTAH9lalH+1gXol1GttR UmZtTIVlnnaqV6935HtWtrEWS1TzmokyfTWETk3ODPKoIXOQluVzyMy4kr/NfBnRF2uPftw PEhBCvopE8eN/dT50mhew== X-UI-Out-Filterresults: notjunk:1; V01:K0:1+HzcDKqVqE=:XvqC4qMVFpF7Yp23bRa28d WZ7074HBNcDLctKjLmoFxn29VTpbQ78/4iSBWnfYtQfT14/HfdYBYnE1DeTWDWAcXGDbaS0LZ jdLkSK9DSDXDkcnxfx1G7kW+Q6JaNxUh7QyEICckqKdARVfRuewK/35Tx7M91UXweLOXi1fs1 xEIVJpR+Q1+7fkUa2lBCRUu9ZO8RJqP6XW9m656XYAAKUWel3k2FoD94nnS9gXMHXhSRTegOF QMMeaNGoZ9xIDxafvfx2j3TmILW0g3AH/BLip3CxiduSo8PyMWPhoAtbDab/EH7CHH1z8ra1a LjdfLiYvBotpHoR0ChEigRgF+Rvn6XHiHPHStQPartj4fLHAvVIdK/m0Gt7W3B5KA7LS6neTT HH/x+RBVpsZiGM1i4jx2kOFf/BrLGII7eBNnv9Y8Yk8ozlvMsbI6gHqw223t+ZRuHZyujIvH5 xo4ID8LqnL1UmSJvBxk+XNcVkc0oWkYWK73n/efOE1TgpY8zN/hVuNBNlWJv3wMuqPelfnEyN S6wKcFGUXLYejFtaEzYokarCca52GTuAvIvL5zz363SkiXuqbN8wrjHkLJEIPGRbXVB4yHaHc 6ayt22QL/BLlwq+ZwlxB+Dq+YyOc91cJZhi8cdemihFQWPUf5sN19aQwoPfoTaVWcJeDXjEf1 lCToGt5qAIWaReTCjeWubz8ZLOSnHfCJUp9CAS79HZWB6Df2jBPWZK50Z7Q6gLmU5j6glEujL 1R2E9i46Tfn0yuGPXwrGDTPFPs52xam9KPY5VGUhaYBuK6g+/isjtl7r3c5UK6jj4ENH4UmOz 2TzuzwM0eiwCS37OWzh3s6A6kamEWPBrK6/io1OlX5gF9EkA+Y= Cc: kernel-janitors@vger.kernel.org, LKML Subject: [alsa-devel] [PATCH 3/3] ALSA: es1968: Use common error handling code in snd_es1968_capture_open() X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Markus Elfring Date: Wed, 15 Nov 2017 09:30:00 +0100 Add jump targets so that a bit of exception handling can be better reused at the end of this function. Signed-off-by: Markus Elfring --- sound/pci/es1968.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index 7777ec583e20..fc45fab258c1 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c @@ -1589,23 +1589,20 @@ static int snd_es1968_capture_open(struct snd_pcm_substream *substream) struct snd_pcm_runtime *runtime = substream->runtime; struct es1968 *chip = snd_pcm_substream_chip(substream); struct esschan *es; - int apu1, apu2; + int apu1, apu2, rc; apu1 = snd_es1968_alloc_apu_pair(chip, ESM_APU_PCM_CAPTURE); if (apu1 < 0) return apu1; apu2 = snd_es1968_alloc_apu_pair(chip, ESM_APU_PCM_RATECONV); if (apu2 < 0) { - snd_es1968_free_apu_pair(chip, apu1); - return apu2; + rc = apu2; + goto free_first_pair; } es = kzalloc(sizeof(*es), GFP_KERNEL); - if (!es) { - snd_es1968_free_apu_pair(chip, apu1); - snd_es1968_free_apu_pair(chip, apu2); - return -ENOMEM; - } + if (!es) + goto e_nomem; es->apu[0] = apu1; es->apu[1] = apu1 + 1; @@ -1621,12 +1618,9 @@ static int snd_es1968_capture_open(struct snd_pcm_substream *substream) /* get mixbuffer */ es->mixbuf = snd_es1968_new_memory(chip, ESM_MIXBUF_SIZE); - if (!es->mixbuf) { - snd_es1968_free_apu_pair(chip, apu1); - snd_es1968_free_apu_pair(chip, apu2); - kfree(es); - return -ENOMEM; - } + if (!es->mixbuf) + goto free_data; + memset(es->mixbuf->buf.area, 0, ESM_MIXBUF_SIZE); runtime->private_data = es; @@ -1640,6 +1634,15 @@ static int snd_es1968_capture_open(struct snd_pcm_substream *substream) spin_unlock_irq(&chip->substream_lock); return 0; + +free_data: + kfree(es); +e_nomem: + rc = -ENOMEM; + snd_es1968_free_apu_pair(chip, apu2); +free_first_pair: + snd_es1968_free_apu_pair(chip, apu1); + return rc; } static int snd_es1968_playback_close(struct snd_pcm_substream *substream)