summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/cfg802154.h2
-rw-r--r--net/mac802154/iface.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/include/net/cfg802154.h b/include/net/cfg802154.h
index 57333f1ee75c..9d99b9655760 100644
--- a/include/net/cfg802154.h
+++ b/include/net/cfg802154.h
@@ -57,6 +57,8 @@ struct wpan_phy {
u8 csma_retries;
s8 frame_retries;
+ __le64 perm_extended_addr;
+
bool lbt;
s32 cca_ed_level;
diff --git a/net/mac802154/iface.c b/net/mac802154/iface.c
index a1aa09b03d12..97e5bed9f917 100644
--- a/net/mac802154/iface.c
+++ b/net/mac802154/iface.c
@@ -410,6 +410,7 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, int type)
/* for compatibility, actual default is 3 */
sdata->mac_params.frame_retries = -1;
+ ieee802154_be64_to_le64(&sdata->extended_addr, sdata->dev->dev_addr);
sdata->pan_id = cpu_to_le16(IEEE802154_PANID_BROADCAST);
sdata->short_addr = cpu_to_le16(IEEE802154_ADDR_BROADCAST);
@@ -471,6 +472,9 @@ ieee802154_if_add(struct ieee802154_local *local, const char *name,
goto err;
}
+ ieee802154_le64_to_be64(ndev->perm_addr,
+ &local->hw.phy->perm_extended_addr);
+ memcpy(ndev->dev_addr, ndev->perm_addr, IEEE802154_EXTENDED_ADDR_LEN);
/* TODO check this */
SET_NETDEV_DEV(ndev, &local->phy->dev);
sdata = netdev_priv(ndev);