From patchwork Sat Nov 18 12:53:45 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: 10064799 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 C26F0602B8 for ; Sat, 18 Nov 2017 12:53:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B3F7F29DC5 for ; Sat, 18 Nov 2017 12:53:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A83902A36E; Sat, 18 Nov 2017 12:53:57 +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 CA78F29DC5 for ; Sat, 18 Nov 2017 12:53:56 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id A92A6267323; Sat, 18 Nov 2017 13:53:55 +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 6C74A267327; Sat, 18 Nov 2017 13:53:54 +0100 (CET) Received: from mout.web.de (mout.web.de [212.227.17.11]) by alsa0.perex.cz (Postfix) with ESMTP id BBCB426698E for ; Sat, 18 Nov 2017 13:53:52 +0100 (CET) Received: from [192.168.1.3] ([78.49.245.81]) by smtp.web.de (mrweb102 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MI5ze-1eJse50QuM-003wsT; Sat, 18 Nov 2017 13:53:47 +0100 From: SF Markus Elfring To: alsa-devel@alsa-project.org, Bhumika Goyal , Jaroslav Kysela , Takashi Iwai , Takashi Sakamoto References: <7b7da9a6-64e1-bde5-99aa-de21f0665323@users.sourceforge.net> Message-ID: <1e2f56b0-df93-d9d3-da79-758439de00a5@users.sourceforge.net> Date: Sat, 18 Nov 2017 13:53:45 +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: <7b7da9a6-64e1-bde5-99aa-de21f0665323@users.sourceforge.net> Content-Language: en-GB X-Provags-ID: V03:K0:wIiE3BJK1xbOONu6EYS4oXWTEuhJKciAjXgXy5Mdn6HMWlQddYV pvSDQRh6XQUdKjV1fjX5Ph+hNkcOxBdhcRYfpcT4XLrTYq7o/4oAKHDxgfXNYwiLt5qRgp0 TmdChpMFLIemjgZ5VnXvbhe67N5dM+LKjRzll4IuqJK9Nc599iXyFpdh1nOYOzdzg0GSBDA RYN8Qhz8XuF4zRoyUGw1g== X-UI-Out-Filterresults: notjunk:1; V01:K0:EGze5CxTswo=:Woh0MHcFDa8O7uzZVU6h1H ixxyZi9sBjpdZMk1clN5wDWIbQgnvbggyMT3U0q5tTym9A75VSFVpZVXUWNilvaWMhgfZ4ESu 0rtUcHClxihedn3uQVjDvVCttBuTBpHU1z0PwfSPHo0/gwETTamV/vfcUu7YNZhhXAt8VaTBO JOj+aEP3YGp4YjZHL9qO5W/Qspvkj1KHkX7RYK6ZqoPUodX3RmoV3SMTojyY7lTu0dBGlO5GR 4P1k2AfydEuoutzel0RXPJtx8j928VmxRxcT58riS6imxtHaOf9+Erw2nchG8V6VQonV08Kz5 bMp58FC6DmIoMbHXzRYCDtYjEZ/6j8xgS0J9C3qq5ZeO+YCDfmJxkC9VizQt+P1YGmPiGErJF rViGGUd6y5O41SJex4AKUiE4Wx0QqFb1DUFBJIO41T3kpEncnSHjMuIfUZPZIbq8YCQNvmzrf 5XcdakkmABJCzaLp1/aTpoSGwITPweFV2PYbVGbSOxBZvAqNQl10dnuppulX1GPRdzhhseIjt fEc2Nseg61FvPVwSbb/KvxvfzRHO5V7VW1OLYEnndTGOoivusmur02KdbB4w7QDKX3ZWE7J9e 5m+1FS23kL3f1t5VclK23ajoda1kNoyC4Pz+n/gX9VHKIeQLcElZ8zXcehe8xhIdN1qPYnUPv PUN26XmdcdZgWPT8sxzSvuDqVJMGxPnFolQ1TlhjegVyTp1sStRE+THovK/IxGuQ9VGMp23LW ILCUZEofnn2edUUnklLZt0UrtItizXYpyKmBdGt5/rsrvhVIKrzLz2tQyfWvnLfaRd6gMQHJ1 3QGzaQaoUE78cLgtAK8CjwEpj4hGol4L4LVHH0AhUQc9AHk9b0= Cc: kernel-janitors@vger.kernel.org, LKML Subject: [alsa-devel] [PATCH 2/2] ALSA: rme96: Improve unlocking of an IRQ in snd_rme96_capture_hw_params() 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: Sat, 18 Nov 2017 13:26:59 +0100 * Add jump targets so that a call of the function "spin_unlock_irq" is stored only twice in this function implementation. * Replace five calls by goto statements. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- sound/pci/rme96.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c index fd8a62ceffde..1c1106f770e7 100644 --- a/sound/pci/rme96.c +++ b/sound/pci/rme96.c @@ -1066,30 +1066,21 @@ snd_rme96_capture_hw_params(struct snd_pcm_substream *substream, spin_lock_irq(&rme96->lock); err = snd_rme96_capture_setformat(rme96, params_format(params)); - if (err < 0) { - spin_unlock_irq(&rme96->lock); - return err; - } + if (err < 0) + goto unlock; + if (snd_rme96_getinputtype(rme96) == RME96_INPUT_ANALOG) { err = snd_rme96_capture_analog_setrate(rme96, params_rate(params)); - if (err < 0) { - spin_unlock_irq(&rme96->lock); - return err; - } + if (err < 0) + goto unlock; } else { rate = snd_rme96_capture_getrate(rme96, &isadat); - if (rate > 0) { - if ((int)params_rate(params) != rate) { - spin_unlock_irq(&rme96->lock); - return -EIO; - } - if ((isadat && runtime->hw.channels_min == 2) || - (!isadat && runtime->hw.channels_min == 8)) { - spin_unlock_irq(&rme96->lock); - return -EIO; - } - } + if (rate > 0 && + ((int)params_rate(params) != rate || + (isadat && runtime->hw.channels_min == 2) || + (!isadat && runtime->hw.channels_min == 8))) + goto e_io; } snd_rme96_setframelog(rme96, params_channels(params), 0); @@ -1097,8 +1088,8 @@ snd_rme96_capture_hw_params(struct snd_pcm_substream *substream, if (params_period_size(params) << rme96->capture_frlog != rme96->playback_periodsize) { - spin_unlock_irq(&rme96->lock); - return -EBUSY; + err = -EBUSY; + goto unlock; } } rme96->capture_periodsize = @@ -1107,6 +1098,12 @@ snd_rme96_capture_hw_params(struct snd_pcm_substream *substream, spin_unlock_irq(&rme96->lock); return 0; + +e_io: + err = -EIO; +unlock: + spin_unlock_irq(&rme96->lock); + return err; } static void