From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932605AbdIFOjU (ORCPT ); Wed, 6 Sep 2017 10:39:20 -0400 Received: from mout.web.de ([212.227.15.4]:61454 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932260AbdIFOjQ (ORCPT ); Wed, 6 Sep 2017 10:39:16 -0400 To: alsa-devel@alsa-project.org, Arvind Yadav , Jaroslav Kysela , Takashi Iwai , Torsten Schenk From: SF Markus Elfring Subject: [PATCH] ALSA: 6Fire: Use common error handling code in usb6fire_chip_probe() Cc: LKML , kernel-janitors@vger.kernel.org Message-ID: <6b3e5ec7-557c-4330-4fa4-221530d6c811@users.sourceforge.net> Date: Wed, 6 Sep 2017 16:38:25 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:mMxn3WojT++VpNRt2oz5PyqeJLfBGdC3smPIMOEAlRzsOFikSgT IpGEzMDls7hTF9MoM3+7biwpnhx2i2TW8RGgXb8e8M31xBxDBIcV5HqpeSuAHVdqLSGGlsu qhdzRihScOO+d5eSlYYNYDXZM9FRjuqjfGcsNG5cA61DfDjamSv8lKPXju2GIE93rTeqCuI 5GT0c6pcK3KrBWRIbqzDw== X-UI-Out-Filterresults: notjunk:1;V01:K0:iP9Zo1Xm0s4=:e+1FvvEZAIEvUwsYvwbkUW XkqXFHkgzzGOkI9meOv0v8UwkI8wlXHljhb99ray6ACOB5DsQfei23T0sqP4rAF2AQFsqyZBP JEdfEjK/U0CocVLhTLCIiy8Yqo0sXgt6b+V0eAVDOGZMAyIvkw2oXWKN8ENFEfqVFrqzDPpO4 IeUUwNaIlIwWAHDDfa/kJLah22PqHZUM8v4IYahiXU4p1BoKxH2+yp7ANkM9OI/pPYl9XkA/H Nq8fTM0L5RgOVZCjbUri84m5APgKB7k4Q27ymo1IUNdA0ENDPgS07WZ64dDvCYRmKRC1gbCi2 h1wG3Z7kFJljsdPKtsvGAxySf1XsfXAMk3vn/uDovwB0AlFlJU5aLtF0S7rIwjBx+k1UWHWyg Nr7urv/f0uWs8hPnJ99/AydtrdJA2Mieo/CuNDDxX5Kwd3cDpVe8+Fi2jb7jMf5FPvQYoE0l9 lMZEsT82AkvsvWyPGb5Eoc3H2RGQZEFFphvRHZ0Br19g1eGpUCvFvi/MLwniKKJu318QvbHnc YqgLz+EK63QcdRyhLFwAZso+6XHaAZOZO9qTdYlu9TtxagK3L+ZPd2+j8Om9mc5NrVovD7kaT iURVSJuKsf6uI7Zwssv0CtyMsgQT4meojgxNB3HyHGyu8nWHHOir7QQlaRhC1eou7O8UyIYN4 7ZEzRN3Zl7r0n4q2lRUG5NSxK5T++tGKDGwFzVoBGlXBtHAUQkBL8HYMUIBlIMs6/5kk6D4f6 G/gAxRxFEI/7DjvGzBhNFLs16lstIpFwCxc+RRXtqVlI5kbcHJ5o0mDQyZ9VYqxQ4G8fTxmbv wAN1AmUt3U4gokzyOtk9qLrmY/xoFx2134YtlKA+p2LVBz1MbA= 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 16:26:29 +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/usb/6fire/chip.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/sound/usb/6fire/chip.c b/sound/usb/6fire/chip.c index bc2a24f7a791..c7641cb50616 100644 --- a/sound/usb/6fire/chip.c +++ b/sound/usb/6fire/chip.c @@ -143,37 +143,32 @@ static int usb6fire_chip_probe(struct usb_interface *intf, chip->card = card; ret = usb6fire_comm_init(chip); - if (ret < 0) { - usb6fire_chip_destroy(chip); - return ret; - } + if (ret < 0) + goto destroy_chip; ret = usb6fire_midi_init(chip); - if (ret < 0) { - usb6fire_chip_destroy(chip); - return ret; - } + if (ret < 0) + goto destroy_chip; ret = usb6fire_pcm_init(chip); - if (ret < 0) { - usb6fire_chip_destroy(chip); - return ret; - } + if (ret < 0) + goto destroy_chip; ret = usb6fire_control_init(chip); - if (ret < 0) { - usb6fire_chip_destroy(chip); - return ret; - } + if (ret < 0) + goto destroy_chip; ret = snd_card_register(card); if (ret < 0) { dev_err(&intf->dev, "cannot register card."); - usb6fire_chip_destroy(chip); - return ret; + goto destroy_chip; } usb_set_intfdata(intf, chip); return 0; + +destroy_chip: + usb6fire_chip_destroy(chip); + return ret; } static void usb6fire_chip_disconnect(struct usb_interface *intf) -- 2.14.1