if (netif_running(dev))
return -EBUSY;
- extended_addr = ieee802154_netdev_to_extended_addr(addr->sa_data);
+ ieee802154_be64_to_le64(&extended_addr, addr->sa_data);
if (!ieee802154_is_valid_extended_addr(extended_addr))
return -EINVAL;
ASSERT_RTNL();
- if (sdata->type == IEEE802154_DEV_WPAN) {
+ if (sdata->vif.type == IEEE802154_DEV_WPAN) {
mutex_lock(&sdata->local->iflist_mtx);
list_for_each_entry(subif, &sdata->local->interfaces, list) {
- if (subif != sdata && subif->type == sdata->type &&
+ if (subif != sdata &&
+ subif->vif.type == sdata->vif.type &&
ieee802154_sdata_running(subif)) {
mutex_unlock(&sdata->local->iflist_mtx);
return -EBUSY;
ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, int type)
{
/* set some type-dependent values */
- sdata->type = type;
+ sdata->vif.type = type;
get_random_bytes(&sdata->bsn, 1);
get_random_bytes(&sdata->dsn, 1);
case IEEE802154_DEV_MONITOR:
sdata->dev->destructor = free_netdev;
sdata->dev->netdev_ops = &mac802154_monitor_ops;
- sdata->dev->ml_priv = &mac802154_mlme_reduced;
sdata->promisuous_mode = true;
break;
default:
ASSERT_RTNL();
- ndev = alloc_netdev(sizeof(*sdata), name, NET_NAME_UNKNOWN,
- ieee802154_if_setup);
+ ndev = alloc_netdev(sizeof(*sdata) + local->hw.vif_data_size, name,
+ NET_NAME_UNKNOWN, ieee802154_if_setup);
if (!ndev)
return ERR_PTR(-ENOMEM);