summaryrefslogtreecommitdiffstats
path: root/net/ieee802154
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2014-11-17 08:20:55 +0100
committerMarcel Holtmann <marcel@holtmann.org>2014-11-17 09:49:17 +0100
commitee7b9053bd69ff43cbc87a9bb987f4d92dc2c29f (patch)
treeeef6377b4bc5f6c76fffa547ee4d0872c58e8f3a /net/ieee802154
parentieee802154: rename and move WPAN_NUM_ defines (diff)
downloadlinux-ee7b9053bd69ff43cbc87a9bb987f4d92dc2c29f.tar.xz
linux-ee7b9053bd69ff43cbc87a9bb987f4d92dc2c29f.zip
ieee802154: fix byteorder for short address and panid
This patch changes the byteorder handling for short and panid handling. We now except to get little endian in nl802154 for these attributes. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/ieee802154')
-rw-r--r--net/ieee802154/nl802154.c8
-rw-r--r--net/ieee802154/rdev-ops.h4
2 files changed, 6 insertions, 6 deletions
diff --git a/net/ieee802154/nl802154.c b/net/ieee802154/nl802154.c
index b82b01669a67..889647744697 100644
--- a/net/ieee802154/nl802154.c
+++ b/net/ieee802154/nl802154.c
@@ -627,7 +627,7 @@ static int nl802154_set_pan_id(struct sk_buff *skb, struct genl_info *info)
struct cfg802154_registered_device *rdev = info->user_ptr[0];
struct net_device *dev = info->user_ptr[1];
struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
- u16 pan_id;
+ __le16 pan_id;
/* conflict here while tx/rx calls */
if (netif_running(dev))
@@ -640,7 +640,7 @@ static int nl802154_set_pan_id(struct sk_buff *skb, struct genl_info *info)
if (!info->attrs[NL802154_ATTR_PAN_ID])
return -EINVAL;
- pan_id = nla_get_u16(info->attrs[NL802154_ATTR_PAN_ID]);
+ pan_id = nla_get_le16(info->attrs[NL802154_ATTR_PAN_ID]);
return rdev_set_pan_id(rdev, wpan_dev, pan_id);
}
@@ -650,7 +650,7 @@ static int nl802154_set_short_addr(struct sk_buff *skb, struct genl_info *info)
struct cfg802154_registered_device *rdev = info->user_ptr[0];
struct net_device *dev = info->user_ptr[1];
struct wpan_dev *wpan_dev = dev->ieee802154_ptr;
- u16 short_addr;
+ __le16 short_addr;
/* conflict here while tx/rx calls */
if (netif_running(dev))
@@ -663,7 +663,7 @@ static int nl802154_set_short_addr(struct sk_buff *skb, struct genl_info *info)
if (!info->attrs[NL802154_ATTR_SHORT_ADDR])
return -EINVAL;
- short_addr = nla_get_u16(info->attrs[NL802154_ATTR_SHORT_ADDR]);
+ short_addr = nla_get_le16(info->attrs[NL802154_ATTR_SHORT_ADDR]);
return rdev_set_short_addr(rdev, wpan_dev, short_addr);
}
diff --git a/net/ieee802154/rdev-ops.h b/net/ieee802154/rdev-ops.h
index 40ffbc0d8b85..aff54fbd9264 100644
--- a/net/ieee802154/rdev-ops.h
+++ b/net/ieee802154/rdev-ops.h
@@ -43,14 +43,14 @@ rdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel)
static inline int
rdev_set_pan_id(struct cfg802154_registered_device *rdev,
- struct wpan_dev *wpan_dev, u16 pan_id)
+ struct wpan_dev *wpan_dev, __le16 pan_id)
{
return rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
}
static inline int
rdev_set_short_addr(struct cfg802154_registered_device *rdev,
- struct wpan_dev *wpan_dev, u16 short_addr)
+ struct wpan_dev *wpan_dev, __le16 short_addr)
{
return rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
}