From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752846AbdJ0Ua3 (ORCPT ); Fri, 27 Oct 2017 16:30:29 -0400 Received: from mout.web.de ([212.227.17.11]:57248 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752738AbdJ0UaY (ORCPT ); Fri, 27 Oct 2017 16:30:24 -0400 To: linux-can@vger.kernel.org, netdev@vger.kernel.org, Marc Kleine-Budde , Oliver Hartkopp , Wolfgang Grandegger From: SF Markus Elfring Subject: [PATCH] can: Use common error handling code in vxcan_newlink() Cc: LKML , kernel-janitors@vger.kernel.org Message-ID: <2e600d9a-faec-dd39-08f0-5a7fb260d7ca@users.sourceforge.net> Date: Fri, 27 Oct 2017 22:30:10 +0200 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:+ygeY4YZQE/OMHBRkn5m2gQp21roYHPDKXuudUiCuBFYqZIxosx JKb5jxbzYjw+mYWqnu4E0JctNFej8IhwSccQ74WM8ixjPLheL553F1KcQAlLRMKdwN/WJQU wyNA1emJbcrhAa89A2blF9ldS3CetZxPyRtwlAvkSKsNN/rf0iAbM+YW4TdwRemHHUBfvVG bmaTaNA3um12cM6obiwSg== X-UI-Out-Filterresults: notjunk:1;V01:K0:FxCAq18idiI=:w+51iKINJACh51fARrhvtR Inf9XDA/xbjZmkTr6jRst/Ld055n3vtjvPwOt7ZlGo0SWFLkAwB3ENGznfxSQa8rTl13Vp2Jt SKYCeUdG257/fSJ5Gv+gl1//NB4cQZsEHxhTPqSQIETQQKG4HwjFSE9EJok4gOlQNzWPZgF95 EYPvdz+NQkKp7n0nZ4yKCiUD37sek07nunYVcTGyyfl00L6uAa03SDZwhyu/5nzM+bH11QEPQ vsspqloy3iV5PQPFN5mv2Max3uS3ZdFSsoZJuBQ18AvS4kJZTB3rUqR2HX0SCrCucbQITUFOJ T0PQUW2wW2EyuQWg3WEj4bdDi/r/ikNMhC5HH3JncHLuwAIfFwmz1MjowMh7qwZ+nVaGZ6QPC xvQLiaP1so8KwGMEusWWMjDz5HeiAUuKjL2d55W0k3ehuAqvjAA/39SyagRKthBYKI1SAtB46 +sL56Rkw6q0f9dIkk4dAm6sXNMtPqmxO04J2b5inpJXh5tDJOMd0I2EU+a8qkQib9VEfUbVwZ lCGvz2Gdl7seKXDx06HNiFyPc+dk1GzV+rnHvlWVfB0RyRLgxg5oRwDQ9KexS+KouSWvlF0QC kly9kJSLD9ya4LarJj8e1thSFgWL1kBg1ibDbrjgKRFQKV8FJV2hk3d6yUnnxVlr7+46ZC2Ts Du4Jrz6pb9fMyAjQnGWcoeaJQxivqIk+qpTXC8Hr/YOFND3vjG5Q7GYPN58HzhLUWPFhHqXte V/r+EMb+TkqoGe790vjWu9H51SIWAuhsO7mcWHFvy1S7f7bIFtJWj6VUHwbo/83+pz+MV2qYt ppyhpdwzDeJBIZCVXAxDQpVZG9067Px7G/wmNpA/JvTyxKAYb4= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Fri, 27 Oct 2017 22:22:24 +0200 * Add a jump target so that a bit of exception handling can be better reused at the end of this function. * Adjust two condition checks. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- drivers/net/can/vxcan.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/can/vxcan.c b/drivers/net/can/vxcan.c index 8404e8852a0f..97f250cbc4ff 100644 --- a/drivers/net/can/vxcan.c +++ b/drivers/net/can/vxcan.c @@ -227,10 +227,8 @@ static int vxcan_newlink(struct net *net, struct net_device *dev, netif_carrier_off(peer); err = rtnl_configure_link(peer, ifmp); - if (err < 0) { - unregister_netdevice(peer); - return err; - } + if (err) + goto unregister_network_device; /* register first device */ if (tb[IFLA_IFNAME]) @@ -239,10 +237,8 @@ static int vxcan_newlink(struct net *net, struct net_device *dev, snprintf(dev->name, IFNAMSIZ, DRV_NAME "%%d"); err = register_netdevice(dev); - if (err < 0) { - unregister_netdevice(peer); - return err; - } + if (err) + goto unregister_network_device; netif_carrier_off(dev); @@ -254,6 +250,10 @@ static int vxcan_newlink(struct net *net, struct net_device *dev, rcu_assign_pointer(priv->peer, dev); return 0; + +unregister_network_device: + unregister_netdevice(peer); + return err; } static void vxcan_dellink(struct net_device *dev, struct list_head *head) -- 2.14.3