summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2013-11-07 10:44:45 +0300
committerDavid S. Miller <davem@davemloft.net>2013-11-07 19:11:13 -0500
commit78032f9b3eae3a43da9468d8ce30caa6be84f89d (patch)
tree3eb96687bd577dba60c5afeaef4fef27c5715af1
parenteb072c4b8da0ba87bc870c7911aae180bae34d4a (diff)
downloadlinux-78032f9b3eae3a43da9468d8ce30caa6be84f89d.tar.gz
linux-78032f9b3eae3a43da9468d8ce30caa6be84f89d.tar.bz2
linux-78032f9b3eae3a43da9468d8ce30caa6be84f89d.zip
6lowpan: release device on error path
We recently added a new error path and it needs a dev_put(). Fixes: 7adac1ec8198 ('6lowpan: Only make 6lowpan links to IEEE802154 devices') Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ieee802154/6lowpan.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
index 9497c6f3276b..426b5df1c98f 100644
--- a/net/ieee802154/6lowpan.c
+++ b/net/ieee802154/6lowpan.c
@@ -1358,8 +1358,10 @@ static int lowpan_newlink(struct net *src_net, struct net_device *dev,
real_dev = dev_get_by_index(src_net, nla_get_u32(tb[IFLA_LINK]));
if (!real_dev)
return -ENODEV;
- if (real_dev->type != ARPHRD_IEEE802154)
+ if (real_dev->type != ARPHRD_IEEE802154) {
+ dev_put(real_dev);
return -EINVAL;
+ }
lowpan_dev_info(dev)->real_dev = real_dev;
lowpan_dev_info(dev)->fragment_tag = 0;