From mboxrd@z Thu Jan 1 00:00:00 1970 From: SF Markus Elfring Date: Sat, 28 Oct 2017 20:00:33 +0000 Subject: [PATCH] phylink: Use common error handling code in phylink_create() Message-Id: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: netdev@vger.kernel.org, Andrew Lunn , "David S. Miller" , Florian Fainelli , Russell King Cc: LKML , kernel-janitors@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 --- 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); -- 2.14.3