cfg802154: pass name_assign_type to rdev_add_virtual_intf()
This code is based on commit 6bab2e19c5
("cfg80211: pass name_assign_type to rdev_add_virtual_intf()")
This will expose in sysfs whether the ifname of a IEEE-802.15.4
device is set by userspace or generated by the kernel.
We are using two types of name_assign_types
o NET_NAME_ENUM: Default interface name provided by kernel
o NET_NAME_USER: Interface name provided by user.
Signed-off-by: Varka Bhadram <varkab@cdac.in>
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:

committed by
Marcel Holtmann

parent
4748e86ecf
commit
5b4a103904
@@ -22,13 +22,14 @@
|
||||
|
||||
static struct net_device *
|
||||
ieee802154_add_iface_deprecated(struct wpan_phy *wpan_phy,
|
||||
const char *name, int type)
|
||||
const char *name,
|
||||
unsigned char name_assign_type, int type)
|
||||
{
|
||||
struct ieee802154_local *local = wpan_phy_priv(wpan_phy);
|
||||
struct net_device *dev;
|
||||
|
||||
rtnl_lock();
|
||||
dev = ieee802154_if_add(local, name, type,
|
||||
dev = ieee802154_if_add(local, name, name_assign_type, type,
|
||||
cpu_to_le64(0x0000000000000000ULL));
|
||||
rtnl_unlock();
|
||||
|
||||
@@ -45,12 +46,14 @@ static void ieee802154_del_iface_deprecated(struct wpan_phy *wpan_phy,
|
||||
|
||||
static int
|
||||
ieee802154_add_iface(struct wpan_phy *phy, const char *name,
|
||||
unsigned char name_assign_type,
|
||||
enum nl802154_iftype type, __le64 extended_addr)
|
||||
{
|
||||
struct ieee802154_local *local = wpan_phy_priv(phy);
|
||||
struct net_device *err;
|
||||
|
||||
err = ieee802154_if_add(local, name, type, extended_addr);
|
||||
err = ieee802154_if_add(local, name, name_assign_type, type,
|
||||
extended_addr);
|
||||
return PTR_ERR_OR_ZERO(err);
|
||||
}
|
||||
|
||||
|
@@ -182,7 +182,8 @@ void ieee802154_iface_exit(void);
|
||||
void ieee802154_if_remove(struct ieee802154_sub_if_data *sdata);
|
||||
struct net_device *
|
||||
ieee802154_if_add(struct ieee802154_local *local, const char *name,
|
||||
enum nl802154_iftype type, __le64 extended_addr);
|
||||
unsigned char name_assign_type, enum nl802154_iftype type,
|
||||
__le64 extended_addr);
|
||||
void ieee802154_remove_interfaces(struct ieee802154_local *local);
|
||||
|
||||
#endif /* __IEEE802154_I_H */
|
||||
|
@@ -522,7 +522,8 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata,
|
||||
|
||||
struct net_device *
|
||||
ieee802154_if_add(struct ieee802154_local *local, const char *name,
|
||||
enum nl802154_iftype type, __le64 extended_addr)
|
||||
unsigned char name_assign_type, enum nl802154_iftype type,
|
||||
__le64 extended_addr)
|
||||
{
|
||||
struct net_device *ndev = NULL;
|
||||
struct ieee802154_sub_if_data *sdata = NULL;
|
||||
@@ -531,7 +532,7 @@ ieee802154_if_add(struct ieee802154_local *local, const char *name,
|
||||
ASSERT_RTNL();
|
||||
|
||||
ndev = alloc_netdev(sizeof(*sdata) + local->hw.vif_data_size, name,
|
||||
NET_NAME_UNKNOWN, ieee802154_if_setup);
|
||||
name_assign_type, ieee802154_if_setup);
|
||||
if (!ndev)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
|
@@ -161,7 +161,8 @@ int ieee802154_register_hw(struct ieee802154_hw *hw)
|
||||
|
||||
rtnl_lock();
|
||||
|
||||
dev = ieee802154_if_add(local, "wpan%d", NL802154_IFTYPE_NODE,
|
||||
dev = ieee802154_if_add(local, "wpan%d", NET_NAME_ENUM,
|
||||
NL802154_IFTYPE_NODE,
|
||||
cpu_to_le64(0x0000000000000000ULL));
|
||||
if (IS_ERR(dev)) {
|
||||
rtnl_unlock();
|
||||
|
Reference in New Issue
Block a user