nl802154: avoid address change while running lowpan
[deliverable/linux.git] / net / ieee802154 / nl802154.c
index 16ef0d9f566e8436e55f0263c51585ae5ab751b9..5f1dc4bfeed5676494cfbd3af0d7dbf3a7da55a8 100644 (file)
@@ -1074,6 +1074,11 @@ static int nl802154_set_pan_id(struct sk_buff *skb, struct genl_info *info)
        if (netif_running(dev))
                return -EBUSY;
 
+       if (wpan_dev->lowpan_dev) {
+               if (netif_running(wpan_dev->lowpan_dev))
+                       return -EBUSY;
+       }
+
        /* don't change address fields on monitor */
        if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR ||
            !info->attrs[NL802154_ATTR_PAN_ID])
@@ -1105,6 +1110,11 @@ static int nl802154_set_short_addr(struct sk_buff *skb, struct genl_info *info)
        if (netif_running(dev))
                return -EBUSY;
 
+       if (wpan_dev->lowpan_dev) {
+               if (netif_running(wpan_dev->lowpan_dev))
+                       return -EBUSY;
+       }
+
        /* don't change address fields on monitor */
        if (wpan_dev->iftype == NL802154_IFTYPE_MONITOR ||
            !info->attrs[NL802154_ATTR_SHORT_ADDR])
This page took 0.033416 seconds and 5 git commands to generate.