From patchwork Mon Oct 30 15:46:39 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: 832097 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yQf3m3jDZz9t2l for ; Tue, 31 Oct 2017 02:46:44 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932243AbdJ3Pqn (ORCPT ); Mon, 30 Oct 2017 11:46:43 -0400 Received: from mout.web.de ([212.227.17.11]:61050 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932156AbdJ3Pqm (ORCPT ); Mon, 30 Oct 2017 11:46:42 -0400 Received: from [192.168.1.2] ([77.181.252.76]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MBTIY-1dymwA0MNy-00AUrH; Mon, 30 Oct 2017 16:46:40 +0100 Subject: [PATCH 1/3] pinctrl: mcp23s08: Improve unlocking of a mutex in mcp23s08_irq() From: SF Markus Elfring To: linux-gpio@vger.kernel.org, Linus Walleij , Sebastian Reichel Cc: LKML , kernel-janitors@vger.kernel.org References: Message-ID: <01bfaa76-f947-f148-077b-35949bf8e229@users.sourceforge.net> Date: Mon, 30 Oct 2017 16:46:39 +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: Content-Language: en-GB X-Provags-ID: V03:K0:kohWUPPsyTlX1ofRUd3rNr0Sljz6f/QENNGIQ60nvUfvvnMW3RN ZkzbJjg5htJ1L7NtgZWJp9W1abfwpdQvqK8NnP1BCB99PCLSllp7SUCxHTty/yt6BNesicY QUlxpl9YcwdDE576BtPpfcOF9Hbo2I0zfbLFv6OZK3bm6EAxX5i/6POrrJTk+aoSsBvh8oa 98g7zySNfi3corihoPrMw== X-UI-Out-Filterresults: notjunk:1; V01:K0:D+TV8U8ty3k=:pvBazPHEEAP/2hUfp0ghbv cHZJIQFOz73RJrmE0w+/6gsXETlPojkGz2KAlxjBEo3IKcrTM5ZrZ0JpPm5yKKntYkp2/a5ez 76TdWpLkeYb5FFzNxTeylgwMs3Cb6LLzgwW+McLXyJw1htYV2KK7P9XpPWPOOPKMNWPRhLMPy vWAgoV4pV+PhIs4/tEjfybmdqhTSYfJFT8BW5fib2CriLLOm5Mwfvdtq13QUykL57v3XfBee8 9Z1KnA03ofyfHGYIyKhuPQIRuspxlgv71qz2YGtwcR22Bp7YUyHV0MC8fd42TUV+kXRw5yRpJ B1SJuW/xJZ190s2cycF517gnQEKofp7u/sZ7bCXciMvW+hTJnjm2hWdtCuMfWHJndncvbJhzq ywyPWMVelf/z4I3nSA3bQ6fo+8AlcDWdUhepLrmkgFIQxNVMSiAXQw6GhB4W/qWvWFCyODZ4o VqqUj0Y/t6Mg1hmw6Zz86B2tyNHCzV+P4ivNZF2GXnEsTz6C6iamcfPkWr49H9hEknqAHTSNh AHJEES3FZpIo7zifU9PdhkWGPnE4VhzzobzBLLuMP+IXFb5ejUqEyMJ018um0c6eJfwfUJ86f uhVeDOnWo4rnb8ZLy7/6MjCyenaPUs8vYbx3rC5m/pVH0khiJCoWDM1TE705mhxrJoUWWNbri vjclxApK90PNHz9nZRRXnT5dMDjBSWVCbArp8KaazvjYhNfQimVVyuI1kC7yervJnil15mB7j m81nF9plNHGzjo3BghNBt6dCyyHlygLiZYWJUS1CvQPRrCIZ8oiZa4dzi5odNx+Rvaem3CLdI Wac0ywfbqiOY9W0q2SppjPN/4E1Oh/9b5aicG47NNsz90HC2js= Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Markus Elfring Date: Mon, 30 Oct 2017 16:03:12 +0100 * Add a jump target so that a call of the function "mutex_unlock" is stored only twice in this function implementation. * Replace five calls by goto statements. * Adjust five condition checks. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- drivers/pinctrl/pinctrl-mcp23s08.c | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/drivers/pinctrl/pinctrl-mcp23s08.c b/drivers/pinctrl/pinctrl-mcp23s08.c index 3e40d4245512..919eb7268331 100644 --- a/drivers/pinctrl/pinctrl-mcp23s08.c +++ b/drivers/pinctrl/pinctrl-mcp23s08.c @@ -457,31 +457,22 @@ static irqreturn_t mcp23s08_irq(int irq, void *data) defval_changed, gpio_set; mutex_lock(&mcp->lock); - if (mcp_read(mcp, MCP_INTF, &intf) < 0) { - mutex_unlock(&mcp->lock); - return IRQ_HANDLED; - } + if (mcp_read(mcp, MCP_INTF, &intf)) + goto unlock; - if (mcp_read(mcp, MCP_INTCAP, &intcap) < 0) { - mutex_unlock(&mcp->lock); - return IRQ_HANDLED; - } + if (mcp_read(mcp, MCP_INTCAP, &intcap)) + goto unlock; - if (mcp_read(mcp, MCP_INTCON, &intcon) < 0) { - mutex_unlock(&mcp->lock); - return IRQ_HANDLED; - } + if (mcp_read(mcp, MCP_INTCON, &intcon)) + goto unlock; - if (mcp_read(mcp, MCP_DEFVAL, &defval) < 0) { - mutex_unlock(&mcp->lock); - return IRQ_HANDLED; - } + if (mcp_read(mcp, MCP_DEFVAL, &defval)) + goto unlock; /* This clears the interrupt(configurable on S18) */ - if (mcp_read(mcp, MCP_GPIO, &gpio) < 0) { - mutex_unlock(&mcp->lock); - return IRQ_HANDLED; - } + if (mcp_read(mcp, MCP_GPIO, &gpio)) + goto unlock; + gpio_orig = mcp->cached_gpio; mcp->cached_gpio = gpio; mutex_unlock(&mcp->lock); @@ -543,6 +534,10 @@ static irqreturn_t mcp23s08_irq(int irq, void *data) } return IRQ_HANDLED; + +unlock: + mutex_unlock(&mcp->lock); + return IRQ_HANDLED; } static void mcp23s08_irq_mask(struct irq_data *data) From patchwork Mon Oct 30 15:47:55 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: 832098 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yQf5D5tr4z9t2M for ; Tue, 31 Oct 2017 02:48:00 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932164AbdJ3Pr7 (ORCPT ); Mon, 30 Oct 2017 11:47:59 -0400 Received: from mout.web.de ([212.227.17.11]:62563 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932156AbdJ3Pr6 (ORCPT ); Mon, 30 Oct 2017 11:47:58 -0400 Received: from [192.168.1.2] ([77.181.252.76]) by smtp.web.de (mrweb102 [213.165.67.124]) with ESMTPSA (Nemesis) id 0LwqFo-1d7Vqe1Slk-016Nh2; Mon, 30 Oct 2017 16:47:56 +0100 Subject: [PATCH 2/3] pinctrl: mcp23s08: Use common error handling code in mcp23s08_dbg_show() From: SF Markus Elfring To: linux-gpio@vger.kernel.org, Linus Walleij , Sebastian Reichel Cc: LKML , kernel-janitors@vger.kernel.org References: Message-ID: <3e95d8b5-8306-ae4c-487b-44c6dc1811d6@users.sourceforge.net> Date: Mon, 30 Oct 2017 16:47:55 +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: Content-Language: en-GB X-Provags-ID: V03:K0:VYbD9258Lr2PoGbEd8wVPbZyhKsxZYO1l3e7UCC+BqlruhjDwUU v0tyjNlVN4ydWeljIdIPev8KqkuGZeYkjEpUwMVhDU6X0YIKRfHUFCiKcpqwTSR2SxfJ89H XmzvyNk4dw6VQ9XpF8LhxQTAeKCs2HbwhW7ZnIiY6ysAeRHW8FCBxTnjttynkVPiuBvqNIG yuNWFhcxO+zkz5zi7fumQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:EKhboaGw7UY=:YrInCibtsdvlzhDeLtNGUG w9vmMme7kaGvLaXYZnkXKpBzeCU/DhBrYHBShdatD7IAycYvkI2NYYjLVOyHARz95zsSBqkU1 AOhtyfCiyaQ0SuaEThGBAx3ct7K5SuCJrcJT6CMGP6RSFPcLVGUtY/BNNyozWW2kxvxnxXwTD Fd8/WhzjkATzOyMseKqnkzFUp5S6elTyMjhwOkkovR5ByuWVWxU/GdzF4rBhAoTHo2TqVy5fC L57avlNffVcvlATV3cNrlsjZNGtyoGqKB8jdxyH1P7wVR8zSnf3roQ0FJtFtW0mk45MTILg73 mrYYkebs3GDu42RteruLNpRiva5VHMyifbwHQU8A2GFbd+O05qW9GhvpKpgvyNfpQqhL53Gcf /J2nK09XmPn+bUcSu+Wd7LuqRnlW7pOuUayR8hJQvf1n2jYBGuQ5Ts8UF/dMYRiZWwLxcHGnf QzGJYUxDKV/IrPgx4j8AzQBXVZZnjLu3zvm7CDHNNuc6hhFFLzdemPr9Ne+4b1Qr3cny8PrmN fHuk3gc2kDkvDEY00en040DuJK3UKUE+KInVWZNAUEO7z9b/c60gvSiN3GIb8LTtUFyMmlSF9 1CtqSkk8gmTUu/NVFq+HT822aRfpI/Hv/wPTx2YHq/3zgq4CiM1jVfEgwAnOFRnVGOB+tZOwu MLSD1PZow3QAbCXotWtLZeW+TvMiY8rCuCvFAMGy/ozb17mJqlJRl5lhpRhmFS7aZT0kpTyZA cYITowqgacQkUUOiPy4z7yl3JEGwqPiU6ONr4pYqMXeTYc0MouciI9Lr2datIsVxOSJO/Ygcg W5QAwJoXSdHHXHUO7dqGpyXJlNouSITBWiVUOjU5CDjUBO96mI= Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Markus Elfring Date: Mon, 30 Oct 2017 16:26:09 +0100 * The script "checkpatch.pl" pointed information out like the following. WARNING: Prefer seq_puts to seq_printf Thus fix the affected source code places. * Adjust jump targets so that a bit of exception handling can be better reused at the end of this function. Signed-off-by: Markus Elfring --- drivers/pinctrl/pinctrl-mcp23s08.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/pinctrl/pinctrl-mcp23s08.c b/drivers/pinctrl/pinctrl-mcp23s08.c index 919eb7268331..d1a7c627dbb9 100644 --- a/drivers/pinctrl/pinctrl-mcp23s08.c +++ b/drivers/pinctrl/pinctrl-mcp23s08.c @@ -723,25 +723,20 @@ static void mcp23s08_dbg_show(struct seq_file *s, struct gpio_chip *chip) mutex_lock(&mcp->lock); t = __check_mcp23s08_reg_cache(mcp); - if (t) { - seq_printf(s, " I/O Error\n"); - goto done; - } + if (t) + goto report_failure; + t = mcp_read(mcp, MCP_IODIR, &iodir); - if (t) { - seq_printf(s, " I/O Error\n"); - goto done; - } + if (t) + goto report_failure; + t = mcp_read(mcp, MCP_GPIO, &gpio); - if (t) { - seq_printf(s, " I/O Error\n"); - goto done; - } + if (t) + goto report_failure; + t = mcp_read(mcp, MCP_GPPU, &gppu); - if (t) { - seq_printf(s, " I/O Error\n"); - goto done; - } + if (t) + goto report_failure; for (t = 0, mask = BIT(0); t < chip->ngpio; t++, mask <<= 1) { const char *label; @@ -758,8 +753,13 @@ static void mcp23s08_dbg_show(struct seq_file *s, struct gpio_chip *chip) /* NOTE: ignoring the irq-related registers */ seq_puts(s, "\n"); } -done: +unlock: mutex_unlock(&mcp->lock); + return; + +report_failure: + seq_puts(s, " I/O Error\n"); + goto unlock; } #else From patchwork Mon Oct 30 15:49:21 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: 832099 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yQf7B2Xhdz9t2M for ; Tue, 31 Oct 2017 02:49:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932301AbdJ3Pt1 (ORCPT ); Mon, 30 Oct 2017 11:49:27 -0400 Received: from mout.web.de ([217.72.192.78]:63780 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932298AbdJ3PtY (ORCPT ); Mon, 30 Oct 2017 11:49:24 -0400 Received: from [192.168.1.2] ([77.181.252.76]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MRUFI-1dkxNC101o-00ShpC; Mon, 30 Oct 2017 16:49:22 +0100 Subject: [PATCH 3/3] pinctrl: mcp23s08: Combine two function calls in mcp23s08_dbg_show() From: SF Markus Elfring To: linux-gpio@vger.kernel.org, Linus Walleij , Sebastian Reichel Cc: LKML , kernel-janitors@vger.kernel.org References: Message-ID: <0510a811-e653-6310-5c7f-8d6434efca2a@users.sourceforge.net> Date: Mon, 30 Oct 2017 16:49:21 +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: Content-Language: en-GB X-Provags-ID: V03:K0:HwyjOZowZb5oUMcgyP+MsQmeeUaBUXuTgg3yZUWFW7dZjKb6SGE Ja4foD9JkYs6DntNrLYObDntutH25elQAnPpsUBTYm1BE2A+Iwo6q2X8u0OSRchqxjQ8UaD aVsvcHrDVIEksP7hMI9TJZAuWd3s5lvZUFfKQIFjGvQIQCllSx9X3q+vOZOie2L/xlsqBeQ hRS73DUSFB6c3xospgqPw== X-UI-Out-Filterresults: notjunk:1; V01:K0:BxefvguQbeg=:5+ljqyGhXz2P7psMTCP5XV 3LJyU57EOj5NknjZz1zyZFV3aDca2ewEhB/3QQ1NWIxSMc5OCQ3J5dVyay3F7viLEGm43qH1+ lk+b06TlDSmD7ZhL2vFlhXfbJwYX+w5BkyF9NvwYEkGf6tuDCPZuoNPhcVbaEkF1Ba4msrtpT ab0345y4EVF/p3tQs1VmGGOzGZnv9wloswVbX6pE0sbxbCxt+IZVA/tKg3RYZBiJeAnnx6P+X 2CdmtaSrBEVXWBZ6SfSgJ3MZiyKHVWLDEbwH+pdzUGYtZDJHqyozrDLBvMYQECM0tYWugiFLC APyTx7sT2v6IJwxmXYoTlwtxj4+imjrX+m5TO987PXmagHonXAfOhsjNXwXUqf2eNnTLoMDwP zSyu0qnsHiPDTqLiWp1dujo1SfLGemgbTdsFucBK/Yp4UIuYz7rGXvZVC146ONpe70gkbuNUa F1MGm9x4XSLU8asQG3CWtk6ypzdLIAEKyqFMxG54B97UEE6QpLFQfoxkdg5vJmVS5TgR9JJ2U PGchfsRArTu30jqto2GiU2/4X09+bIkG4xyFHlgtLEZeOMKpR8hWB38jaRE4wgDkseF8P6atx TFny0p5n4DEsez8SkBPxfUy2Boa1YWg9I6Ku3SjRxuosfg3YN1jtN1qu1Oxgsfjx2D/0kjNOJ EU3i0l/p27HHzVZsvynu2iMS/s0aUw6QtkgiqJgyFt1MoTGOplgNgpHzL7HUR9udG+4KtAYy4 AQqKGJ3RfUQcJ391I4kJ1McwJteP2YocSP6qCiN4cC2fi+/WDDflqT3de45vpH4V2Ue7D28Ms SP9dj3yvqGt/WezbLNCA9vYTtCKekpP9U5Cb5GrZE9E3RwILk8= Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Markus Elfring Date: Mon, 30 Oct 2017 16:34:44 +0100 * Print a line break together with other data in a single function call. * Adjust indentation. Signed-off-by: Markus Elfring --- drivers/pinctrl/pinctrl-mcp23s08.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/pinctrl/pinctrl-mcp23s08.c b/drivers/pinctrl/pinctrl-mcp23s08.c index d1a7c627dbb9..79b585d46289 100644 --- a/drivers/pinctrl/pinctrl-mcp23s08.c +++ b/drivers/pinctrl/pinctrl-mcp23s08.c @@ -745,13 +745,12 @@ static void mcp23s08_dbg_show(struct seq_file *s, struct gpio_chip *chip) if (!label) continue; - seq_printf(s, " gpio-%-3d P%c.%d (%-12s) %s %s %s", - chip->base + t, bank, t, label, - (iodir & mask) ? "in " : "out", - (gpio & mask) ? "hi" : "lo", - (gppu & mask) ? "up" : " "); + seq_printf(s, " gpio-%-3d P%c.%d (%-12s) %s %s %s\n", + chip->base + t, bank, t, label, + (iodir & mask) ? "in " : "out", + (gpio & mask) ? "hi" : "lo", + (gppu & mask) ? "up" : " "); /* NOTE: ignoring the irq-related registers */ - seq_puts(s, "\n"); } unlock: mutex_unlock(&mcp->lock);