mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-16 17:23:55 +08:00
ieee802154: remove mlme get_phy callback
This patch removes the get_phy callback from mlme ops structure. Instead we doing a dereference via ieee802154_ptr dev pointer. For backwards compatibility we need to run get_device after dereference wpan_phy via ieee802154_ptr. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
d5ae67bacd
commit
bd28a11f25
@ -423,8 +423,6 @@ struct ieee802154_mlme_ops {
|
|||||||
|
|
||||||
/* The fields below are required. */
|
/* The fields below are required. */
|
||||||
|
|
||||||
struct wpan_phy *(*get_phy)(const struct net_device *dev);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FIXME: these should become the part of PIB/MIB interface.
|
* FIXME: these should become the part of PIB/MIB interface.
|
||||||
* However we still don't have IB interface of any kind
|
* However we still don't have IB interface of any kind
|
||||||
@ -434,16 +432,6 @@ struct ieee802154_mlme_ops {
|
|||||||
u8 (*get_dsn)(const struct net_device *dev);
|
u8 (*get_dsn)(const struct net_device *dev);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* The IEEE 802.15.4 standard defines 2 type of the devices:
|
|
||||||
* - FFD - full functionality device
|
|
||||||
* - RFD - reduce functionality device
|
|
||||||
*
|
|
||||||
* So 2 sets of mlme operations are needed
|
|
||||||
*/
|
|
||||||
struct ieee802154_reduced_mlme_ops {
|
|
||||||
struct wpan_phy *(*get_phy)(const struct net_device *dev);
|
|
||||||
};
|
|
||||||
|
|
||||||
static inline struct ieee802154_mlme_ops *
|
static inline struct ieee802154_mlme_ops *
|
||||||
ieee802154_mlme_ops(const struct net_device *dev)
|
ieee802154_mlme_ops(const struct net_device *dev)
|
||||||
{
|
{
|
||||||
|
@ -407,13 +407,6 @@ static netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct wpan_phy *lowpan_get_phy(const struct net_device *dev)
|
|
||||||
{
|
|
||||||
struct net_device *real_dev = lowpan_dev_info(dev)->real_dev;
|
|
||||||
|
|
||||||
return ieee802154_mlme_ops(real_dev)->get_phy(real_dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
static __le16 lowpan_get_pan_id(const struct net_device *dev)
|
static __le16 lowpan_get_pan_id(const struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct net_device *real_dev = lowpan_dev_info(dev)->real_dev;
|
struct net_device *real_dev = lowpan_dev_info(dev)->real_dev;
|
||||||
@ -465,7 +458,6 @@ static const struct net_device_ops lowpan_netdev_ops = {
|
|||||||
|
|
||||||
static struct ieee802154_mlme_ops lowpan_mlme = {
|
static struct ieee802154_mlme_ops lowpan_mlme = {
|
||||||
.get_pan_id = lowpan_get_pan_id,
|
.get_pan_id = lowpan_get_pan_id,
|
||||||
.get_phy = lowpan_get_phy,
|
|
||||||
.get_short_addr = lowpan_get_short_addr,
|
.get_short_addr = lowpan_get_short_addr,
|
||||||
.get_dsn = lowpan_get_dsn,
|
.get_dsn = lowpan_get_dsn,
|
||||||
};
|
};
|
||||||
|
@ -94,8 +94,9 @@ static int ieee802154_nl_fill_iface(struct sk_buff *msg, u32 portid,
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ops = ieee802154_mlme_ops(dev);
|
ops = ieee802154_mlme_ops(dev);
|
||||||
phy = ops->get_phy(dev);
|
phy = dev->ieee802154_ptr->wpan_phy;
|
||||||
BUG_ON(!phy);
|
BUG_ON(!phy);
|
||||||
|
get_device(&phy->dev);
|
||||||
|
|
||||||
short_addr = ops->get_short_addr(dev);
|
short_addr = ops->get_short_addr(dev);
|
||||||
pan_id = ops->get_pan_id(dev);
|
pan_id = ops->get_pan_id(dev);
|
||||||
@ -493,7 +494,8 @@ int ieee802154_set_macparams(struct sk_buff *skb, struct genl_info *info)
|
|||||||
!info->attrs[IEEE802154_ATTR_FRAME_RETRIES])
|
!info->attrs[IEEE802154_ATTR_FRAME_RETRIES])
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
phy = ops->get_phy(dev);
|
phy = dev->ieee802154_ptr->wpan_phy;
|
||||||
|
get_device(&phy->dev);
|
||||||
|
|
||||||
ops->get_mac_params(dev, ¶ms);
|
ops->get_mac_params(dev, ¶ms);
|
||||||
|
|
||||||
|
@ -287,8 +287,9 @@ int ieee802154_del_iface(struct sk_buff *skb, struct genl_info *info)
|
|||||||
if (!dev)
|
if (!dev)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
phy = ieee802154_mlme_ops(dev)->get_phy(dev);
|
phy = dev->ieee802154_ptr->wpan_phy;
|
||||||
BUG_ON(!phy);
|
BUG_ON(!phy);
|
||||||
|
get_device(&phy->dev);
|
||||||
|
|
||||||
rc = -EINVAL;
|
rc = -EINVAL;
|
||||||
/* phy name is optional, but should be checked if it's given */
|
/* phy name is optional, but should be checked if it's given */
|
||||||
|
@ -428,7 +428,6 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, int type)
|
|||||||
case IEEE802154_DEV_MONITOR:
|
case IEEE802154_DEV_MONITOR:
|
||||||
sdata->dev->destructor = free_netdev;
|
sdata->dev->destructor = free_netdev;
|
||||||
sdata->dev->netdev_ops = &mac802154_monitor_ops;
|
sdata->dev->netdev_ops = &mac802154_monitor_ops;
|
||||||
sdata->dev->ml_priv = &mac802154_mlme_reduced;
|
|
||||||
sdata->promisuous_mode = true;
|
sdata->promisuous_mode = true;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -67,15 +67,6 @@ static int mac802154_mlme_start_req(struct net_device *dev,
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct wpan_phy *mac802154_get_phy(const struct net_device *dev)
|
|
||||||
{
|
|
||||||
struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
|
|
||||||
|
|
||||||
BUG_ON(dev->type != ARPHRD_IEEE802154);
|
|
||||||
|
|
||||||
return to_phy(get_device(&sdata->local->phy->dev));
|
|
||||||
}
|
|
||||||
|
|
||||||
static int mac802154_set_mac_params(struct net_device *dev,
|
static int mac802154_set_mac_params(struct net_device *dev,
|
||||||
const struct ieee802154_mac_params *params)
|
const struct ieee802154_mac_params *params)
|
||||||
{
|
{
|
||||||
@ -134,12 +125,7 @@ static struct ieee802154_llsec_ops mac802154_llsec_ops = {
|
|||||||
.unlock_table = mac802154_unlock_table,
|
.unlock_table = mac802154_unlock_table,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ieee802154_reduced_mlme_ops mac802154_mlme_reduced = {
|
|
||||||
.get_phy = mac802154_get_phy,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ieee802154_mlme_ops mac802154_mlme_wpan = {
|
struct ieee802154_mlme_ops mac802154_mlme_wpan = {
|
||||||
.get_phy = mac802154_get_phy,
|
|
||||||
.start_req = mac802154_mlme_start_req,
|
.start_req = mac802154_mlme_start_req,
|
||||||
.get_pan_id = mac802154_dev_get_pan_id,
|
.get_pan_id = mac802154_dev_get_pan_id,
|
||||||
.get_short_addr = mac802154_dev_get_short_addr,
|
.get_short_addr = mac802154_dev_get_short_addr,
|
||||||
|
Loading…
Reference in New Issue
Block a user