From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753619AbdHWIYT (ORCPT ); Wed, 23 Aug 2017 04:24:19 -0400 Received: from mout.web.de ([212.227.15.14]:65374 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753496AbdHWIYQ (ORCPT ); Wed, 23 Aug 2017 04:24:16 -0400 Subject: [PATCH 1/6] ALSA: pcm: Use common error handling code in _snd_pcm_new() From: SF Markus Elfring To: alsa-devel@alsa-project.org, Arnd Bergmann , Arvind Yadav , Dan Carpenter , Ingo Molnar , Jaroslav Kysela , Takashi Iwai , Takashi Sakamoto , Vegard Nossum Cc: kernel-janitors@vger.kernel.org, LKML References: <800d7aa6-d8f2-cbf5-caaa-7e4006976e68@users.sourceforge.net> Message-ID: <60478d72-9d5a-9eff-9372-0fb4dbb2dbc4@users.sourceforge.net> Date: Wed, 23 Aug 2017 10:23:23 +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: <800d7aa6-d8f2-cbf5-caaa-7e4006976e68@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:TPl8bvIBeGax0IYMSXVjB3yNOBJhZ5HV8BS/XvOTjJPeA0Z4Qlx m99exiTvXTu90oZhgZYlTfdIeaws6xsf1VVdBeXuxHzNdcDlHTV1G6tZ3t6S1eoRAvGLEa+ YJKTnDeNA4yOBtqpk3W8FiIARaIRnV8oIBaD5CKzyu+3RwpfZ6lyXRlmkrQmoYl8IoCut/9 s5cpyjPqsr/SK2CIwa6tA== X-UI-Out-Filterresults: notjunk:1;V01:K0:ppoRsWuUra0=:fDN3zA9pN7cCifdSYJ6ndd O5XiwVKdbHE2DOgU671BBpuJRDNLmHBbImMKQtIbxjxUaGdWvH6epPhSF3F9LIkWzaA4sL/Km +wiAMJRGejfUfltn5dyhOhdMvIcqUJgKjZwEno53dMdEbhpgrFyl3TjefwfKPA9/6xlV3nXD6 KGWLNHbUmrf0KuGvTOx6W3O5aVcmMJdBKz1cA3FqBWUrpppZtaUWtiWxM6MW82DXjaRDLgJof F2Ug2uh4umu2b74CoyIpHXkXjWAXyn6r7YXei1RNvBwaZPIG4grjPF7fm7Fo+v7dUIa69+vwW nNtAbcPDr8lMO8ZpjwgZxBcj2fP47Jqvjzma+Tm3AWJeWJyrV5JsYIrd2b2asfYBXImZ8xq6F yP5k7VLu1P8GUy6LjujFOCc/o5pM9g7WJ4uR2F86UvbrO9RiYmv+rtlz33I97Os2YFbxRUEyH ApbZqFWArZqYRlwaYaeWWdi9uGSx/bU5eLTYOqzBJL6axHaixUqw5+/ByjdnOAb7t5C0izqus KsvIuiECS8e8EOXpNaVpok9L+T6glYbciUGjepd5W2B/gVyK3TLGqnp0zAdpTfs7yLby3A8H2 9D8xMY6TItoncBfeRaTw3NFoqpry9H5j+zU191mMtOFbvO42SlhBCVXEjaA9gSckIhXYZGQ/p cMuBCjzcn5fELiSkE8dMiTp64rpqeRmqk77hxsi/PVkXasrhnVMPBuJcUsi+UwBcMQfG4Gf3H TQoVy2T/RjYec8jbmON7Dp4V0BS5dRaBWeTt2RVmgfHbNclgKIlPWm7dMMcNAn4/YScTzUKMw qhYut30p6Yjyt/zPcoaDdkcQTmDF5/Nea/d9at/0N8rEdavLW8= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Wed, 23 Aug 2017 08:40:37 +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. Signed-off-by: Markus Elfring --- sound/core/pcm.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/sound/core/pcm.c b/sound/core/pcm.c index 89c7485519cb..048df9658f50 100644 --- a/sound/core/pcm.c +++ b/sound/core/pcm.c @@ -783,21 +783,27 @@ static int _snd_pcm_new(struct snd_card *card, const char *id, int device, INIT_LIST_HEAD(&pcm->list); if (id) strlcpy(pcm->id, id, sizeof(pcm->id)); - if ((err = snd_pcm_new_stream(pcm, SNDRV_PCM_STREAM_PLAYBACK, playback_count)) < 0) { - snd_pcm_free(pcm); - return err; - } - if ((err = snd_pcm_new_stream(pcm, SNDRV_PCM_STREAM_CAPTURE, capture_count)) < 0) { - snd_pcm_free(pcm); - return err; - } - if ((err = snd_device_new(card, SNDRV_DEV_PCM, pcm, &ops)) < 0) { - snd_pcm_free(pcm); - return err; - } + + err = snd_pcm_new_stream(pcm, SNDRV_PCM_STREAM_PLAYBACK, + playback_count); + if (err < 0) + goto free_pcm; + + err = snd_pcm_new_stream(pcm, SNDRV_PCM_STREAM_CAPTURE, capture_count); + if (err < 0) + goto free_pcm; + + err = snd_device_new(card, SNDRV_DEV_PCM, pcm, &ops); + if (err < 0) + goto free_pcm; + if (rpcm) *rpcm = pcm; return 0; + +free_pcm: + snd_pcm_free(pcm); + return err; } /** -- 2.14.0