From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933335AbdKAStz (ORCPT ); Wed, 1 Nov 2017 14:49:55 -0400 Received: from mout.web.de ([212.227.15.3]:52101 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933216AbdKAStv (ORCPT ); Wed, 1 Nov 2017 14:49:51 -0400 Subject: [PATCH v2 3/3] Sony-laptop: Use common error handling code in sony_nc_setup_rfkill() From: SF Markus Elfring To: platform-driver-x86@vger.kernel.org, Andy Shevchenko , Darren Hart , Marco Chiappero , Matthew Garrett , Mattia Dongili Cc: LKML , kernel-janitors@vger.kernel.org, Andy Shevchenko References: <17ee534c-9fe6-19c4-0522-76cd3cbe5f88@users.sourceforge.net> Message-ID: <522fa39e-4aad-3a18-f63f-bed36f30ee0a@users.sourceforge.net> Date: Wed, 1 Nov 2017 19:49:19 +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: <17ee534c-9fe6-19c4-0522-76cd3cbe5f88@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:v7AVPSAtmxTy1SzTK66BgcsWP1F0gNrtBokpkSl7xJFZ9jZZka3 C7m5Aq/HHOU85dOiy7bomEj9F7DW5HRlgprdMdZj6vc3bKlsuhpSVhYpIZSatR1mQcx+/8U nXQfiJs7hHgjJyGisT7VN7YZBRh8SvO4jpwnlL5adynF1lORkACJByYZUzNxsDA1v3t14li LuSnVTD32AnVMPdtfirQA== X-UI-Out-Filterresults: notjunk:1;V01:K0:84D6jkJOakc=:M7poHd/ldF5xeZJ7ndqmzG 7e/qfr+dZEmjphdXrptStsFJJN2E+CoZHrROPTufXrQKipd1xO90AZPmPL5GimxP1n9w6msFD 7CbeWN/bzIlRbDL6+diJ6PkJ1fBu1mZyn/vQWYC3YILZ9lUOfsTtVnKGVUHqUTY53/6FI7Rtv WRDRWB5dbY3DpjfmDRbmQSpVdIPuGEOb46L62YEXUC81c9Qon4lmNc3gKk2W0TCGK6HZw5UES PFLV8szGH01e89t2Lqmyt7e2BvgVlBM0YJ2SoaevJ02Zj0D8scBoqn7ra8Y647QpKTsNWBXWm Zp48WlZsV7z8ZbuJ1b9hE0OyZ7PlbC3hspp3D6cQ5tt200tnO8VBrTgbse76/UcdWSFeSw+jQ 8VjeTLmT/B0T5ywNR3BKBE8nukTsEfbGRLQ6yCCG7eiHqgUZ80zSDUYJyx6Zo+Weoz+uy4dJc NuGLIXjJ/Or/6Sf2r/zlsddTCyqt13eNVre7AjTP3j7ZhZQE46g++0TpgNel+9aFhReB4i9hJ V2nLoBtk7eQcObuzsasEsRK3TZ3WPiqy040S1jB2OpMfYfYVCyRjpkVwIsMC1DgymBvPfW4OP Z311DYckt9N49/G+eQvuSr21r/xjv3h5KxaefBtFZX6fznLTT1SBa7yP+W7840dXGzRLeraYa PszUaD/Tk8b5+TA0EN8Fwc1PiCJRW0caME+nC6ev3U3y129iCdVyopbakuX15mixwFOvno9MW QuXqrF8SyrN5Iy385hOGUmR4H/8RWULk1uBxwA/X6qQhHF5ijluUQpEPoseQVzTfmdKVi/6kr u52Cx/o8HjN2cXzvidzx2OU8fJJg8cvjI/DSWerx2Zwl9+0r8I= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Wed, 1 Nov 2017 19:17:01 +0100 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 --- v2: This software refactoring was repeated after the error code handling was adjusted for two function calls. drivers/platform/x86/sony-laptop.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c index 62aa2c37b8d2..8e2ee1e221fe 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c @@ -1661,31 +1661,32 @@ static int sony_nc_setup_rfkill(struct acpi_device *device, return -ENOMEM; err = sony_call_snc_handle(sony_rfkill_handle, 0x200, &result); - if (err < 0) { - rfkill_destroy(rfk); - return err; - } + if (err < 0) + goto destroy_rfk; + hwblock = !(result & 0x1); err = sony_call_snc_handle(sony_rfkill_handle, sony_rfkill_address[nc_type], &result); - if (err < 0) { - rfkill_destroy(rfk); - return err; - } + if (err < 0) + goto destroy_rfk; + swblock = !(result & 0x2); rfkill_init_sw_state(rfk, swblock); rfkill_set_hw_state(rfk, hwblock); err = rfkill_register(rfk); - if (err) { - rfkill_destroy(rfk); - return err; - } + if (err) + goto destroy_rfk; + sony_rfkill_devices[nc_type] = rfk; return err; + +destroy_rfk: + rfkill_destroy(rfk); + return err; } static void sony_nc_rfkill_update(void) -- 2.14.3