]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/mac802154/mib.c
Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[karo-tx-linux.git] / net / mac802154 / mib.c
index 8ded97cf1c33f4336b3a59761095eff575ba6287..153bd1ddbfbba782b4c2842d7559d8a8917bb474 100644 (file)
@@ -24,7 +24,9 @@
 #include <linux/if_arp.h>
 
 #include <net/mac802154.h>
+#include <net/ieee802154_netdev.h>
 #include <net/wpan-phy.h>
+#include <net/ieee802154_netdev.h>
 
 #include "mac802154.h"
 
@@ -62,8 +64,6 @@ static void hw_addr_notify(struct work_struct *work)
                pr_debug("failed changed mask %lx\n", nw->changed);
 
        kfree(nw);
-
-       return;
 }
 
 static void set_hw_addr_filt(struct net_device *dev, unsigned long changed)
@@ -79,11 +79,9 @@ static void set_hw_addr_filt(struct net_device *dev, unsigned long changed)
        work->dev = dev;
        work->changed = changed;
        queue_work(priv->hw->dev_workqueue, &work->work);
-
-       return;
 }
 
-void mac802154_dev_set_short_addr(struct net_device *dev, u16 val)
+void mac802154_dev_set_short_addr(struct net_device *dev, __le16 val)
 {
        struct mac802154_sub_if_data *priv = netdev_priv(dev);
 
@@ -100,10 +98,10 @@ void mac802154_dev_set_short_addr(struct net_device *dev, u16 val)
        }
 }
 
-u16 mac802154_dev_get_short_addr(const struct net_device *dev)
+__le16 mac802154_dev_get_short_addr(const struct net_device *dev)
 {
        struct mac802154_sub_if_data *priv = netdev_priv(dev);
-       u16 ret;
+       __le16 ret;
 
        BUG_ON(dev->type != ARPHRD_IEEE802154);
 
@@ -119,19 +117,19 @@ void mac802154_dev_set_ieee_addr(struct net_device *dev)
        struct mac802154_sub_if_data *priv = netdev_priv(dev);
        struct mac802154_priv *mac = priv->hw;
 
+       priv->extended_addr = ieee802154_devaddr_from_raw(dev->dev_addr);
+
        if (mac->ops->set_hw_addr_filt &&
-           memcmp(mac->hw.hw_filt.ieee_addr,
-                  dev->dev_addr, IEEE802154_ADDR_LEN)) {
-               memcpy(mac->hw.hw_filt.ieee_addr,
-                      dev->dev_addr, IEEE802154_ADDR_LEN);
+           mac->hw.hw_filt.ieee_addr != priv->extended_addr) {
+               mac->hw.hw_filt.ieee_addr = priv->extended_addr;
                set_hw_addr_filt(dev, IEEE802515_AFILT_IEEEADDR_CHANGED);
        }
 }
 
-u16 mac802154_dev_get_pan_id(const struct net_device *dev)
+__le16 mac802154_dev_get_pan_id(const struct net_device *dev)
 {
        struct mac802154_sub_if_data *priv = netdev_priv(dev);
-       u16 ret;
+       __le16 ret;
 
        BUG_ON(dev->type != ARPHRD_IEEE802154);
 
@@ -142,7 +140,7 @@ u16 mac802154_dev_get_pan_id(const struct net_device *dev)
        return ret;
 }
 
-void mac802154_dev_set_pan_id(struct net_device *dev, u16 val)
+void mac802154_dev_set_pan_id(struct net_device *dev, __le16 val)
 {
        struct mac802154_sub_if_data *priv = netdev_priv(dev);