|
@@ -166,7 +166,10 @@ static struct net_device *ieee802154_nl_get_dev(struct genl_info *info)
|
|
|
if (!dev)
|
|
|
return NULL;
|
|
|
|
|
|
- if (dev->type != ARPHRD_IEEE802154) {
|
|
|
+ /* Check on mtu is currently a hacked solution because lowpan
|
|
|
+ * and wpan have the same ARPHRD type.
|
|
|
+ */
|
|
|
+ if (dev->type != ARPHRD_IEEE802154 || dev->mtu != IEEE802154_MTU) {
|
|
|
dev_put(dev);
|
|
|
return NULL;
|
|
|
}
|
|
@@ -448,7 +451,11 @@ int ieee802154_dump_iface(struct sk_buff *skb, struct netlink_callback *cb)
|
|
|
|
|
|
idx = 0;
|
|
|
for_each_netdev(net, dev) {
|
|
|
- if (idx < s_idx || (dev->type != ARPHRD_IEEE802154))
|
|
|
+ /* Check on mtu is currently a hacked solution because lowpan
|
|
|
+ * and wpan have the same ARPHRD type.
|
|
|
+ */
|
|
|
+ if (idx < s_idx || dev->type != ARPHRD_IEEE802154 ||
|
|
|
+ dev->mtu != IEEE802154_MTU)
|
|
|
goto cont;
|
|
|
|
|
|
if (ieee802154_nl_fill_iface(skb, NETLINK_CB(cb->skb).portid,
|
|
@@ -782,7 +789,11 @@ ieee802154_llsec_dump_table(struct sk_buff *skb, struct netlink_callback *cb,
|
|
|
int rc;
|
|
|
|
|
|
for_each_netdev(net, dev) {
|
|
|
- if (idx < first_dev || dev->type != ARPHRD_IEEE802154)
|
|
|
+ /* Check on mtu is currently a hacked solution because lowpan
|
|
|
+ * and wpan have the same ARPHRD type.
|
|
|
+ */
|
|
|
+ if (idx < first_dev || dev->type != ARPHRD_IEEE802154 ||
|
|
|
+ dev->mtu != IEEE802154_MTU)
|
|
|
goto skip;
|
|
|
|
|
|
data.ops = ieee802154_mlme_ops(dev);
|