From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751655AbdHVQvl (ORCPT ); Tue, 22 Aug 2017 12:51:41 -0400 Received: from mout.web.de ([212.227.15.14]:52320 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750962AbdHVQvj (ORCPT ); Tue, 22 Aug 2017 12:51:39 -0400 To: alsa-devel@alsa-project.org, Jaroslav Kysela , Julia Lawall , Takashi Iwai Cc: LKML , kernel-janitors@vger.kernel.org From: SF Markus Elfring Subject: [PATCH] ALSA: ctxfi: Use common error handling code in two functions Message-ID: <6293f7ce-a3c7-ace8-cab4-26d09f4e0c91@users.sourceforge.net> Date: Tue, 22 Aug 2017 18:50:16 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:FvcUpDybNtRH5kdRhr9+qjhJKLOziKno/+TYoOeavQUKkx4UU4o hjj4BUWuhdAB9aYlX3rzeDJ46esbYkn/zNFNJlvnbafHZPfTXV948e2jEiTPlIqj4BkcaIQ gLadbPa+RVdYeS+VSZASzdUlncyYRgR3UpV+Ahg12ShhVK8CO6Y6kbZdh/mjsfPD21WRikL n8LQlo5e2LlhcFWWPlE3w== X-UI-Out-Filterresults: notjunk:1;V01:K0://wvoniqB6M=:fJOK5TzSETuK9F7vkNBabc i6Wjvrr8rBQycatmJAZeBxDqWNKJgvdjTuSZqPYoNjFKWrH7M8w5LGP8rqsxcL8QB4JeYV6yk Cfr45/509RPX2sd645NGOm73c1sMGw9Zh31RPzHPeu+JPGMyVr9ophPvTPp4hq215ADMrxf4S v6kTULSk8gm1hbbOGoENsrv9S8bmQsfjCMMybbToFTgQNfcZf37oNob9ZiMX2GTqjxBbtumkj nuOzZuWLJgFT0KilDSFLyCwaiWM4vmKXiCn95RhQJzvfPzmoZufiL6Thc2m12DnY1u/Yc5MVO 2d7ky6nos7oiNLU2dRHA3hiV5UZ3IfwjL+xYjcmjSTQOe9fW0MSqWbtiP9u5LW3mor4U4scMb Dp6cfIQwnVNJ0Si8AdJrpaHeEkgbZnqdXpzhgi/xqmTqFHBA9T0CoHRHqlwwh73FjcmCMC0Gl N7OLAzB4LaIb7ZUWWS2vYmTl4RVwSORoN4xfEwJiD2jxe3GhCGb7UfL2yxft59ZjbNsmajgGj EcfaleY3chYRIfB8cpqHVgB0Qv46DD2iGXzQvkiI+Azt/J9JMQHMgV1FEwXJjnhygrQD0Y+g1 rpoQUdoyuePXmd+fPNnIQHsxxTAo+AxWVPI4mkEbjKPX9qu/0++t8Oosm1jHg3YibyFnf1Id8 u6sKPQ2INGXey282nJfpfVVFIpGaswIUkEzAtTtuDJzf5fUBpnz95Llk23eV7wKiu8kjYjlAW Lm831wSxG7C+qJjqakW/dGZzjVypICLqQjbcyI09iogSy82DIv8rZq6mgj768VZcZw8M7ZD9R FWjZ8oPnTHS6LZuaDHGKKWDXAJNnYzE4XTGkhXkCe//3f7vcAR7gUtgMc4vP/AZ+I3AeaxC Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Tue, 22 Aug 2017 18:43:42 +0200 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/pci/ctxfi/ctpcm.c | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/sound/pci/ctxfi/ctpcm.c b/sound/pci/ctxfi/ctpcm.c index 974978041558..dece6a81060d 100644 --- a/sound/pci/ctxfi/ctpcm.c +++ b/sound/pci/ctxfi/ctpcm.c @@ -140,27 +140,28 @@ static int ct_pcm_playback_open(struct snd_pcm_substream *substream) err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS); - if (err < 0) { - kfree(apcm); - return err; - } + if (err < 0) + goto free_pcm; + err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 1024, UINT_MAX); - if (err < 0) { - kfree(apcm); - return err; - } + if (err < 0) + goto free_pcm; apcm->timer = ct_timer_instance_new(atc->timer, apcm); if (!apcm->timer) { - kfree(apcm); - return -ENOMEM; + err = -ENOMEM; + goto free_pcm; } runtime->private_data = apcm; runtime->private_free = ct_atc_pcm_free_substream; return 0; + +free_pcm: + kfree(apcm); + return err; } static int ct_pcm_playback_close(struct snd_pcm_substream *substream) @@ -286,27 +287,28 @@ static int ct_pcm_capture_open(struct snd_pcm_substream *substream) err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS); - if (err < 0) { - kfree(apcm); - return err; - } + if (err < 0) + goto free_pcm; + err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 1024, UINT_MAX); - if (err < 0) { - kfree(apcm); - return err; - } + if (err < 0) + goto free_pcm; apcm->timer = ct_timer_instance_new(atc->timer, apcm); if (!apcm->timer) { - kfree(apcm); - return -ENOMEM; + err = -ENOMEM; + goto free_pcm; } runtime->private_data = apcm; runtime->private_free = ct_atc_pcm_free_substream; return 0; + +free_pcm: + kfree(apcm); + return err; } static int ct_pcm_capture_close(struct snd_pcm_substream *substream) -- 2.14.0