From patchwork Sun Oct 29 17:06:00 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: 831769 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yQ3t52JF3z9t5c for ; Mon, 30 Oct 2017 04:06:21 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751473AbdJ2RGJ (ORCPT ); Sun, 29 Oct 2017 13:06:09 -0400 Received: from mout.web.de ([212.227.15.14]:61872 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751036AbdJ2RGI (ORCPT ); Sun, 29 Oct 2017 13:06:08 -0400 Received: from [192.168.1.2] ([78.49.32.239]) by smtp.web.de (mrweb001 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LaTtv-1dRqha3dPT-00mJgI; Sun, 29 Oct 2017 18:06:02 +0100 To: netdev@vger.kernel.org, linux-wimax@intel.com, Inaky Perez-Gonzalez Cc: LKML , "kernel-janitors@vger.kernel.org" From: SF Markus Elfring Subject: [PATCH] wimax/i2400m: Use common error handling code in i2400m_wake_tx_work() Message-ID: <62ad3417-8297-b763-ae49-bb8c097c2679@users.sourceforge.net> Date: Sun, 29 Oct 2017 18:06:00 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 Content-Language: en-GB X-Provags-ID: V03:K0:FKqikt+atR6sSOcLJnE0AT3/HHBdu2s+C5AlPYD9MXiP6cvknWG GWADbbP1aE4isIhvDouuyc2Py+ugkG4jzWSX55yLLftiIKf5i1MmPaQKVePWvBeigh3Ptvd 3XyT7FnjESr8525WDFShuUSR9CBAsGrpoUhT6wmqBnF0PGHE6f35SHygrk0E9Rq8Ztc/vAh xDL9kzGOZS/fZ6PZcLNlw== X-UI-Out-Filterresults: notjunk:1; V01:K0:Rx+TPItTl2A=:MeF0YcNc4q0mmI3Wxo8KaZ KQXe/bWO0rVieInfQnefc9bG/z8+tn1SoyIzolnOPgN3TXu9MDU0e2e4Dl/h2N891sRmeUlVQ BalNcmfRRzDxezlQsR2JY1yYhX8O/bch5/7GoOc1u3xCRqvkmxiQsjXsHc3P347yn/KaDhxCt 8pIJtsVrFhX5IN8N8KpfsZBULfz91IvZJLWLcSLp/3lDiwPYKL85JSqZsBZFfRcMf/G72Q+CP cWTq9JKYiuaVIA6v4t5Ls0u2LevyDIaA2KRCVeW4HA7YyAhGSOnYh7U23puCOF5vXFGrRwvz3 96eTMErtjIi6dIu6kwGa6hivxulOfKjRd0J+zj5L5NgZqIoiNKN3r0+WLrDulklTsspNmiUpD 8pgjZsoMVZBty8K36Aw0iT9QUMokw05YSs7oEpcn4IdvBw30HI7DeX3/QDEDeHEhpe74NZR7O knJzBbT1FMrsS4EHIYRpgfuOZniiMDz14tHKXc/RHpMnxYMJKGOtM7YwUfzwlMIj6BBfJoGt/ ZFc1j4vGoELn4xct7aefPGfwWrETV7Tk+fNMHE42zX1a77hjcp6wxV+KYA6ANamoOfg4w+CLP XBB5D2DDti+ABrvVIMtuYVQSO0hDHy3XQEVmLxrl4ObpaldEj2aUuWfddvL7A+U1yx43+02g2 YgCUXW9Zh/YpVx2bFoeTanN50upnjPtHPUD9AvCnKoS4SJYUuDuas5S+YWAxK7gDankOse3jN N0WZSprUb5eKksArhb5eMKkeCQuLsDWwo3EOjzgzTZeYEbhfTdIDq54a5e5LHLuP/hCtrWjmV 9fGWQdkjVGLjte1mHGjbEIddAYV2aKqXTzwk00d6ir/oKUaPz0= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Markus Elfring Date: Sun, 29 Oct 2017 18:00:17 +0100 Adjust jump targets 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 --- drivers/net/wimax/i2400m/netdev.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/net/wimax/i2400m/netdev.c b/drivers/net/wimax/i2400m/netdev.c index a654687b5fa2..e3acdd295f12 100644 --- a/drivers/net/wimax/i2400m/netdev.c +++ b/drivers/net/wimax/i2400m/netdev.c @@ -181,8 +181,7 @@ void i2400m_wake_tx_work(struct work_struct *ws) if (result < 0) { dev_err(dev, "WAKE&TX: device didn't get out of idle: " "%d - resetting\n", result); - i2400m_reset(i2400m, I2400M_RT_BUS); - goto error; + goto reset_i2400m; } result = wait_event_timeout(i2400m->state_wq, i2400m->state != I2400M_SS_IDLE, @@ -192,12 +191,11 @@ void i2400m_wake_tx_work(struct work_struct *ws) if (result < 0) { dev_err(dev, "WAKE&TX: error waiting for device to exit IDLE: " "%d - resetting\n", result); - i2400m_reset(i2400m, I2400M_RT_BUS); - goto error; + goto reset_i2400m; } msleep(20); /* device still needs some time or it drops it */ result = i2400m_tx(i2400m, skb->data, skb->len, I2400M_PT_DATA); -error: +wake_queue: netif_wake_queue(net_dev); out_kfree: kfree_skb(skb); /* refcount transferred by _hard_start_xmit() */ @@ -205,6 +203,11 @@ void i2400m_wake_tx_work(struct work_struct *ws) i2400m_put(i2400m); d_fnend(3, dev, "(ws %p i2400m %p skb %p) = void [%d]\n", ws, i2400m, skb, result); + return; + +reset_i2400m: + i2400m_reset(i2400m, I2400M_RT_BUS); + goto wake_queue; }