mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-15 13:22:55 +00:00
ieee802154: interface type to be added
This stack implementation distinguishes several types of slave interfaces. Another parameter to 'add_iface_' function is added to clarify the interface type is going to be registered. Signed-off-by: Alexander Smirnov <alex.bluesman.smirnov@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ef2486f553
commit
90c049b2c6
@ -68,6 +68,7 @@ enum {
|
||||
IEEE802154_ATTR_CHANNEL_PAGE_LIST,
|
||||
|
||||
IEEE802154_ATTR_PHY_NAME,
|
||||
IEEE802154_ATTR_DEV_TYPE,
|
||||
|
||||
__IEEE802154_ATTR_MAX,
|
||||
};
|
||||
@ -126,4 +127,9 @@ enum {
|
||||
|
||||
#define IEEE802154_CMD_MAX (__IEEE802154_CMD_MAX - 1)
|
||||
|
||||
enum {
|
||||
__IEEE802154_DEV_INVALID = -1,
|
||||
__IEEE802154_DEV_MAX,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -43,7 +43,7 @@ struct wpan_phy {
|
||||
int idx;
|
||||
|
||||
struct net_device *(*add_iface)(struct wpan_phy *phy,
|
||||
const char *name);
|
||||
const char *name, int type);
|
||||
void (*del_iface)(struct wpan_phy *phy, struct net_device *dev);
|
||||
|
||||
char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
|
||||
|
@ -179,6 +179,7 @@ static int ieee802154_add_iface(struct sk_buff *skb,
|
||||
const char *devname;
|
||||
int rc = -ENOBUFS;
|
||||
struct net_device *dev;
|
||||
int type = __IEEE802154_DEV_INVALID;
|
||||
|
||||
pr_debug("%s\n", __func__);
|
||||
|
||||
@ -221,7 +222,13 @@ static int ieee802154_add_iface(struct sk_buff *skb,
|
||||
goto nla_put_failure;
|
||||
}
|
||||
|
||||
dev = phy->add_iface(phy, devname);
|
||||
if (info->attrs[IEEE802154_ATTR_DEV_TYPE]) {
|
||||
type = nla_get_u8(info->attrs[IEEE802154_ATTR_DEV_TYPE]);
|
||||
if (type >= __IEEE802154_DEV_MAX)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
dev = phy->add_iface(phy, devname, type);
|
||||
if (IS_ERR(dev)) {
|
||||
rc = PTR_ERR(dev);
|
||||
goto nla_put_failure;
|
||||
|
Loading…
Reference in New Issue
Block a user