From patchwork Sat Oct 28 20:00:33 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: 831642 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 3yPWpC0LN3z9t3f for ; Sun, 29 Oct 2017 07:01:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751478AbdJ1UAw (ORCPT ); Sat, 28 Oct 2017 16:00:52 -0400 Received: from mout.web.de ([212.227.17.12]:59880 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751270AbdJ1UAv (ORCPT ); Sat, 28 Oct 2017 16:00:51 -0400 Received: from [192.168.1.2] ([78.53.48.73]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MeSGJ-1doQN01zpP-00QDEg; Sat, 28 Oct 2017 22:00:37 +0200 To: netdev@vger.kernel.org, Andrew Lunn , "David S. Miller" , Florian Fainelli , Russell King From: SF Markus Elfring Subject: [PATCH] phylink: Use common error handling code in phylink_create() Cc: LKML , kernel-janitors@vger.kernel.org Message-ID: Date: Sat, 28 Oct 2017 22:00:33 +0200 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:IYnHAGymeO2mj2G5jxjIUTh4QDZVXyvORoHlWH/NsJuEgEbfCry H/9t0rU/DwauGyn1OqnnOiyxnrFPliYhp+IFKhaeQ75HdO1sdEDRAWuHAcWRBwA0wgKsvub YFsKI6WoMZFAIU9shGCpWkHFn+kE1R4a3go8o8InrEP+K79nfEbTjhF0Z8L5mUVTdRc8tsF sK92h2hGA0Ir6q1fOaFnw== X-UI-Out-Filterresults: notjunk:1; V01:K0:z4wU9enZ21o=:R8ORxetmBpP/qj6ocAU/LC NtKcFrRdfNEYgLQxa9T+X3YefXFnor3lbsFnROU5K23A9t2xMsbcdw+IF87iKTJdjBic/vkFQ aKjTttn50Y+GHsFvas720oK9ciUJNekuFB4nwv6aPznuYXQQ+yEp6R8jTVvgSEVI/myowLaZT uw8zmav/38nIWh2jNtavgupJtQGXumgNMD8u896uxLLRQaiteT+DsN/Yz+DGhguA9Czt/DBa6 fuCgKvBDZTaQfb5g+xUi2hFNqIMBQTFozUOmYdOnAdbiNYkhxmIYb8dMaWWa2a5bvjUrQT5Iw azl4OOSMZqricDI43nItDxQ9K6bFzgV1dgcfbDn/v4WNNZMkRC2H8B0lMJUiuFQ68Dg0U1dlx dlDlR02ts4DC5KUDxq4t+VHQRNoGD1CWe0p3uXnLC8lEymN3plL1AkAH49DOPcFcmjnLzPHe5 IE8KA0t+odQ3ECSAwPj549t4Zy/gQwuZnOqDBup50ytuVS/Bm4+vs+fgH4bJ94SmuiL5ljs0z YFCXSXYeFbhhxo4/nHnuRRjE0Z1n7hI2vYg27Z7k2vCdCikK0m6Xhksz/biqZjiGss6LwQAXZ Mi4l9bJ1sBXi/O3NCzWq6wfEYVa+iERNmEfsnEHqGtO7RuwotMiSj8w5VY6+lbAeFoiKfFaho 5R6YMvDV864KowjkYK4kFw9uroUPbnK4jMhGm01T/d3o2xJZiqBWBA6+ECSGhila7nFokYr4O wvGzAuQDG6yheUelpVPaveDhyrqbm8xoI8UgyiS+vghAH08lt9PLUIjK0awF7+4cfmZmMkHre AGf5NPQ/oqmC5n4b2OjE4Y0g6nqHn8RWKegVupYxoInh543EKw= Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Markus Elfring Date: Sat, 28 Oct 2017 21:48:31 +0200 * Add a jump target so that a bit of exception handling can be better reused at the end of this function. * Adjust three condition checks. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring Reviewed-by: Florian Fainelli Acked-by: Russell King --- drivers/net/phy/phylink.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index bcb4755bcd95..67b19c13f405 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -533,26 +533,24 @@ struct phylink *phylink_create(struct net_device *ndev, struct device_node *np, phylink_validate(pl, pl->supported, &pl->link_config); ret = phylink_parse_mode(pl, np); - if (ret < 0) { - kfree(pl); - return ERR_PTR(ret); - } + if (ret) + goto free_link; if (pl->link_an_mode == MLO_AN_FIXED) { ret = phylink_parse_fixedlink(pl, np); - if (ret < 0) { - kfree(pl); - return ERR_PTR(ret); - } + if (ret) + goto free_link; } ret = phylink_register_sfp(pl, np); - if (ret < 0) { - kfree(pl); - return ERR_PTR(ret); - } + if (ret) + goto free_link; return pl; + +free_link: + kfree(pl); + return ERR_PTR(ret); } EXPORT_SYMBOL_GPL(phylink_create);