diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2018-03-21 11:09:01 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-03-22 14:30:36 -0400 |
commit | 5dcd8400884cc4a043a6d4617e042489e5d566a9 (patch) | |
tree | 6ffd19f1f6b32995583adacc662a3faf9d424e74 | |
parent | e0645d9b9673560dab6e6274ee1d7583a2b51350 (diff) |
macsec: missing dev_put() on error in macsec_newlink()
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 <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/macsec.c | 5 |
1 files changed, 3 insertions, 2 deletions
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 @@ del_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; } |