diff options
author | David S. Miller <davem@davemloft.net> | 2013-10-08 15:28:53 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-10-08 15:28:53 -0400 |
commit | 8cc27d174b6502a4a9dc6186f35bf1351a6e200e (patch) | |
tree | 0603d870482719fef905b411a79352e69f0bca30 | |
parent | net: Update the sysctl permissions handler to test effective uid/gid (diff) | |
parent | 6lowpan: Sync default hardware address of lowpan links to their wpan (diff) | |
download | linux-dev-8cc27d174b6502a4a9dc6186f35bf1351a6e200e.tar.xz linux-dev-8cc27d174b6502a4a9dc6186f35bf1351a6e200e.zip |
Merge branch '6lowpan'
Alan Ott says:
====================
Alexander Aring suggested that devices desired to be linked to 6lowpan
be checked for actually being of type IEEE802154, since IEEE802154 devices
are all that are supported by 6lowpan at present.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ieee802154/6lowpan.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c index c85e71e0c7ff..ff41b4d60d30 100644 --- a/net/ieee802154/6lowpan.c +++ b/net/ieee802154/6lowpan.c @@ -1372,6 +1372,8 @@ 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) + return -EINVAL; lowpan_dev_info(dev)->real_dev = real_dev; lowpan_dev_info(dev)->fragment_tag = 0; @@ -1386,6 +1388,9 @@ static int lowpan_newlink(struct net *src_net, struct net_device *dev, entry->ldev = dev; + /* Set the lowpan harware address to the wpan hardware address. */ + memcpy(dev->dev_addr, real_dev->dev_addr, IEEE802154_ADDR_LEN); + mutex_lock(&lowpan_dev_info(dev)->dev_list_mtx); INIT_LIST_HEAD(&entry->list); list_add_tail(&entry->list, &lowpan_devices); |