From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756319AbdKCTKc (ORCPT ); Fri, 3 Nov 2017 15:10:32 -0400 Received: from mout.web.de ([212.227.15.14]:55057 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751942AbdKCTKa (ORCPT ); Fri, 3 Nov 2017 15:10:30 -0400 To: devel@driverdev.osuosl.org, Colin Ian King , Gaurav Pathak , Greg Kroah-Hartman , Hannes Reinecke , "Martin K. Petersen" Cc: LKML , kernel-janitors@vger.kernel.org From: SF Markus Elfring Subject: [PATCH] staging/rts5208/rtsx: Improve unlocking of a mutex in rtsx_resume() Message-ID: Date: Fri, 3 Nov 2017 20:10:17 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.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:gSri5mOShYum96KFozjVXEJMqn405iFbxv7PYm9ZYkky48FTppE 9SIhzwEJFyZC4qEcxVrYePy6aT8k39lJltlzN7oDkPuvhs5x2IGuneRoBebBLmjWw/J+5gM yEXKd5LeayYXOAWZcnnHJZqPuYY1zjmDKvkwttpScZbdWmDzzZpk+3VjwB93J03LcEVjGER OnoZmzhM3KWeNuURm7qbg== X-UI-Out-Filterresults: notjunk:1;V01:K0:jdLGiEc3CDM=:BqXGpwuma3y+PMsOSGbfSL A+WEJBipjDP668JKVgL09BV8BjF1Nq75KbpimWn0ax0+v1ORMqPF5jzFm69uZkWvkbzwLFQZa qURSYNbizkSWFDjmnxd1XZk7s6FhAJYBNnYN3im3Sb+oBhtftVvgd7+REw17SopW7ZnyVqDge tVOQASqhWDa3nlewdmK5GsgMY+vnZUQU4kKv+PW/JUB9RMHPD09h1lPQOpN4WgzTXppcCasOn KMUapcl5n8F+Gvu9puPXkeeaethwNSgxTPmR1e6fgJEdk4BM+Jr6NiU1PkeDMnJpMMXcmssLg Pilfm5Bw9vgvY3Sl+qwO8UurcUy2VsrsB6a+VIgSO8RmNue/dKewjd63mGVqZ2vEUsHV+0Xk6 b4dyx7egd9SsExxF9gE2KNew4DhT8yrzhnOIbn3dN4QJoLBNkba7AhL1pb4Q1/68YKCRoqvx1 bjq+uHoD2sXt/9tBmOou1Q4isumOP3xftioEr/QtZDwLXOSHU+P3F7mS1N6PI1s03TZeWk/ry UHycBhyl/SN+dZBcSDmJ41L0Nf0Hl58anRJQWwvshGY5gdyjnZ8wbEFSep8xMaqDDZmNsDmR3 mqbf+iXqpsPsQf6gcKq9F8RtaiinccixAaJsta/if5Gmy2osOBhVOuZP1fV8pV4pAiiBccnIF TenrBDIPNmvnPItvlQvY1bvMO0tsiGLCTwBUY/SB+0J5EK2byiXz1qSyg6PiEy54S3fEE0eiI K3xPhKYG7rDFQrt+wahRyfw+463YsElaxDPJiQmJyKJESm/LUfhy0QWmKV+/5Bxpg1/aMJCDP dDi8JQdNNs6eZoxFQ0Yfo/cDGtqSv8Xdcvyqs7thyTo88DqguE= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Fri, 3 Nov 2017 20:02:22 +0100 * Add a jump target so that a call of the function "mutex_unlock" is stored only twice in this function implementation. * Replace two calls by goto statements. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- drivers/staging/rts5208/rtsx.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rts5208/rtsx.c b/drivers/staging/rts5208/rtsx.c index 89e2cfe7d1cc..14022a76ecfb 100644 --- a/drivers/staging/rts5208/rtsx.c +++ b/drivers/staging/rts5208/rtsx.c @@ -349,9 +349,7 @@ static int rtsx_resume(struct pci_dev *pci) dev_err(&dev->pci->dev, "%s: pci_enable_device failed, disabling device\n", CR_DRIVER_NAME); - /* unlock the device pointers */ - mutex_unlock(&dev->dev_mutex); - return -EIO; + goto unlock; } pci_set_master(pci); @@ -360,11 +358,8 @@ static int rtsx_resume(struct pci_dev *pci) chip->msi_en = 0; } - if (rtsx_acquire_irq(dev) < 0) { - /* unlock the device pointers */ - mutex_unlock(&dev->dev_mutex); - return -EIO; - } + if (rtsx_acquire_irq(dev) < 0) + goto unlock; rtsx_write_register(chip, HOST_SLEEP_STATE, 0x03, 0x00); rtsx_init_chip(chip); @@ -373,6 +368,10 @@ static int rtsx_resume(struct pci_dev *pci) mutex_unlock(&dev->dev_mutex); return 0; + +unlock: + mutex_unlock(&dev->dev_mutex); + return -EIO; } #endif /* CONFIG_PM */ -- 2.15.0