From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752864AbdIFKXe (ORCPT ); Wed, 6 Sep 2017 06:23:34 -0400 Received: from mout.web.de ([212.227.15.3]:62789 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752485AbdIFKX3 (ORCPT ); Wed, 6 Sep 2017 06:23:29 -0400 Subject: [PATCH 1/3] ALSA: bebob: Use common error handling code in snd_bebob_stream_start_duplex() From: SF Markus Elfring To: alsa-devel@alsa-project.org, Clemens Ladisch , Jaroslav Kysela , Takashi Iwai Cc: LKML , kernel-janitors@vger.kernel.org References: <85f95150-9cec-7a53-7692-837ba543e1ec@users.sourceforge.net> Message-ID: <541f0f9f-fc87-f65b-bbd8-fec5d45d5d2e@users.sourceforge.net> Date: Wed, 6 Sep 2017 12:22:16 +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: <85f95150-9cec-7a53-7692-837ba543e1ec@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:6oxKjmDT1YF1ZOWw7wezoW4Y4vQyyaZFmKKlrt9MABdc3j9+txE NLIXMnUa5CHVoj9KEhDUxZjJzyLYxIrSUWMoZwFdWROT0EV/hdn4PZn3oNU9CGroOnqM7Ca tPBufyjAagJG2eVxbEIWTTUe5cFjaScx0z+CjdGUH9Ok/SWHst4YcEX8sn+x7hV6pU909Qp LSBJMTsUELAez7On+2Wgw== X-UI-Out-Filterresults: notjunk:1;V01:K0:wujFd4YOCiE=:cuuCa8r3kkBmgLA+CnCC5o tFqGXiqfdf5u08ZMFJUFcJPFyUt6HdanCgrnkHZPg9oyCOZUXS6EAHaAUxQIpzGYX5oFwz8Aw W41ceok7A3jGm2TXzTXcd32EWKfK83VJRiZzJCNeIzv4mLBqvHlJbBHkWpTPjgb3p9drtncg6 +hWq5g0MRYAJB+WT2z0DAHG0yzDB990N4mmpJMKJ1dwWA8Sk54BB/xwdzH54c97wc+zfgMqjq 3LBPiDNvLCYUkKyk6ITDUMkleHybBvg2Epmdv9kbXGChWdX3Vbq/B62asgYZI5bTd8qCYQ5rm kcl+YRKoBGXxK7lF80zQG4pIj3YFq4dQeqv83prQFYlKAZIRejxpiZDCL2HNGOKq+c9QjdV5N wGZrp8TbP8u/AWCcPFPxgYWrXeR4PRUb84nFxRKyCk8PECLe9d+00a6ZJshiwvYGNu0+Nftbd SSvoF2eI3GdQDOOYvO+UTcBOIivVLarMJY3IBwYTnmpPrhNv56eQ5JAp6YeMTLO5L3jN+Q3q9 H2jdvTkQh9hmHJZfzYrmslTq2yFPtVeCPQe74smsvxFin0REa6cOPDtPaxPyEPCziC9ZLa/4O atYFd+73ovmm4oeZ60gBvBVlj6q17fJ4QlSoLQEYtP/l7BjWuQo3Mp/tezutdFvPKU9lZGMCq /Cgy5ok52zQle+kZfUG1mL0tTJC1I9NhiBkrtvWPQlFvm1r9jAC2vkD0levcnHk5rFreBf90W W8bfQ/tbvqXnOWAcdukwe0AecnF/sed+4SWj2o2VAOvCwobtzY7WdKqgZ8Z6MeyQ/ctyMJvsX lDnp9odha2JlH2W8wd2P2ev5fGZjdbjI3y6dOnYFvon++f9Jkw= 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 11:40:53 +0200 Add jump targets 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/firewire/bebob/bebob_stream.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/sound/firewire/bebob/bebob_stream.c b/sound/firewire/bebob/bebob_stream.c index 4d3034a68bdf..bc9e42b6368e 100644 --- a/sound/firewire/bebob/bebob_stream.c +++ b/sound/firewire/bebob/bebob_stream.c @@ -629,8 +629,7 @@ int snd_bebob_stream_start_duplex(struct snd_bebob *bebob, unsigned int rate) if (err < 0) { dev_err(&bebob->unit->device, "fail to run AMDTP master stream:%d\n", err); - break_both_connections(bebob); - goto end; + goto break_connections; } /* @@ -644,19 +643,15 @@ int snd_bebob_stream_start_duplex(struct snd_bebob *bebob, unsigned int rate) dev_err(&bebob->unit->device, "fail to ensure sampling rate: %d\n", err); - amdtp_stream_stop(&bebob->rx_stream); - break_both_connections(bebob); - goto end; + goto stop_rx_stream; } } /* wait first callback */ if (!amdtp_stream_wait_callback(&bebob->rx_stream, CALLBACK_TIMEOUT)) { - amdtp_stream_stop(&bebob->rx_stream); - break_both_connections(bebob); err = -ETIMEDOUT; - goto end; + goto stop_rx_stream; } } @@ -666,9 +661,7 @@ int snd_bebob_stream_start_duplex(struct snd_bebob *bebob, unsigned int rate) if (err < 0) { dev_err(&bebob->unit->device, "fail to run AMDTP slave stream:%d\n", err); - amdtp_stream_stop(&bebob->rx_stream); - break_both_connections(bebob); - goto end; + goto stop_rx_stream; } /* wait first callback */ @@ -682,6 +675,12 @@ int snd_bebob_stream_start_duplex(struct snd_bebob *bebob, unsigned int rate) } end: return err; + +stop_rx_stream: + amdtp_stream_stop(&bebob->rx_stream); +break_connections: + break_both_connections(bebob); + return err; } void snd_bebob_stream_stop_duplex(struct snd_bebob *bebob) -- 2.14.1