From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from aserp2120.oracle.com ([141.146.126.78]:52764 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751522AbeCUIOp (ORCPT ); Wed, 21 Mar 2018 04:14:45 -0400 Date: Wed, 21 Mar 2018 11:09:01 +0300 From: Dan Carpenter To: "David S. Miller" , Sabrina Dubroca Cc: David Ahern , David Windsor , Elena Reshetova , "Jason A. Donenfeld" , Matthias Schiffer , Johannes Berg , Felix Walter , Girish Moodalbail , netdev@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: [PATCH] macsec: missing dev_put() on error in macsec_newlink() Message-ID: <20180321080900.GA9826@mwanda> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: netdev-owner@vger.kernel.org List-ID: We moved the dev_hold(real_dev); call earlier in the function but forgot to update the error paths. Fixes: 0759e552bce7 ("macsec: fix negative refcnt on parent link") Signed-off-by: Dan Carpenter diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c index 7de88b33d5b9..9cbb0c8a896a 100644 --- a/drivers/net/macsec.c +++ b/drivers/net/macsec.c @@ -3277,7 +3277,7 @@ static int macsec_newlink(struct net *net, struct net_device *dev, err = netdev_upper_dev_link(real_dev, dev, extack); if (err < 0) - goto unregister; + goto put_dev; /* need to be already registered so that ->init has run and * the MAC addr is set @@ -3316,7 +3316,8 @@ static int macsec_newlink(struct net *net, struct net_device *dev, macsec_del_dev(macsec); unlink: netdev_upper_dev_unlink(real_dev, dev); -unregister: +put_dev: + dev_put(real_dev); unregister_netdevice(dev); return err; }