Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd28a11f authored by Alexander Aring's avatar Alexander Aring Committed by Marcel Holtmann
Browse files

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: default avatarAlexander Aring <alex.aring@gmail.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent d5ae67ba
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -423,8 +423,6 @@ struct ieee802154_mlme_ops {

	/* 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.
	 * 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);
};

/* 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 *
ieee802154_mlme_ops(const struct net_device *dev)
{
+0 −8
Original line number Diff line number Diff line
@@ -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)
{
	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 = {
	.get_pan_id = lowpan_get_pan_id,
	.get_phy = lowpan_get_phy,
	.get_short_addr = lowpan_get_short_addr,
	.get_dsn = lowpan_get_dsn,
};
+4 −2
Original line number Diff line number Diff line
@@ -94,8 +94,9 @@ static int ieee802154_nl_fill_iface(struct sk_buff *msg, u32 portid,
		goto out;

	ops = ieee802154_mlme_ops(dev);
	phy = ops->get_phy(dev);
	phy = dev->ieee802154_ptr->wpan_phy;
	BUG_ON(!phy);
	get_device(&phy->dev);

	short_addr = ops->get_short_addr(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])
		goto out;

	phy = ops->get_phy(dev);
	phy = dev->ieee802154_ptr->wpan_phy;
	get_device(&phy->dev);

	ops->get_mac_params(dev, &params);

+2 −1
Original line number Diff line number Diff line
@@ -287,8 +287,9 @@ int ieee802154_del_iface(struct sk_buff *skb, struct genl_info *info)
	if (!dev)
		return -ENODEV;

	phy = ieee802154_mlme_ops(dev)->get_phy(dev);
	phy = dev->ieee802154_ptr->wpan_phy;
	BUG_ON(!phy);
	get_device(&phy->dev);

	rc = -EINVAL;
	/* phy name is optional, but should be checked if it's given */
+0 −1
Original line number Diff line number Diff line
@@ -428,7 +428,6 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, int type)
	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:
Loading