aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2014-11-05 14:51:18 -0500
committerMarcel Holtmann <marcel@holtmann.org>2014-11-05 15:53:04 -0500
commitbd28a11f25f2c2a563620e7be588dc4dd8a91396 (patch)
tree52d9a31150389f22e98774d3b26cec1fe7517608 /net
parentd5ae67bacd9654b0e26b9f248249e9ee1b6e338b (diff)
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>
Diffstat (limited to 'net')
-rw-r--r--net/ieee802154/6lowpan_rtnl.c8
-rw-r--r--net/ieee802154/nl-mac.c6
-rw-r--r--net/ieee802154/nl-phy.c3
-rw-r--r--net/mac802154/iface.c1
-rw-r--r--net/mac802154/mac_cmd.c14
5 files changed, 6 insertions, 26 deletions
diff --git a/net/ieee802154/6lowpan_rtnl.c b/net/ieee802154/6lowpan_rtnl.c
index 659f7b25ea1a..a96b64c9a73d 100644
--- a/net/ieee802154/6lowpan_rtnl.c
+++ b/net/ieee802154/6lowpan_rtnl.c
@@ -407,13 +407,6 @@ static netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *dev)
407 } 407 }
408} 408}
409 409
410static struct wpan_phy *lowpan_get_phy(const struct net_device *dev)
411{
412 struct net_device *real_dev = lowpan_dev_info(dev)->real_dev;
413
414 return ieee802154_mlme_ops(real_dev)->get_phy(real_dev);
415}
416
417static __le16 lowpan_get_pan_id(const struct net_device *dev) 410static __le16 lowpan_get_pan_id(const struct net_device *dev)
418{ 411{
419 struct net_device *real_dev = lowpan_dev_info(dev)->real_dev; 412 struct net_device *real_dev = lowpan_dev_info(dev)->real_dev;
@@ -465,7 +458,6 @@ static const struct net_device_ops lowpan_netdev_ops = {
465 458
466static struct ieee802154_mlme_ops lowpan_mlme = { 459static struct ieee802154_mlme_ops lowpan_mlme = {
467 .get_pan_id = lowpan_get_pan_id, 460 .get_pan_id = lowpan_get_pan_id,
468 .get_phy = lowpan_get_phy,
469 .get_short_addr = lowpan_get_short_addr, 461 .get_short_addr = lowpan_get_short_addr,
470 .get_dsn = lowpan_get_dsn, 462 .get_dsn = lowpan_get_dsn,
471}; 463};
diff --git a/net/ieee802154/nl-mac.c b/net/ieee802154/nl-mac.c
index 91a1855e521c..7127b9d1a684 100644
--- a/net/ieee802154/nl-mac.c
+++ b/net/ieee802154/nl-mac.c
@@ -94,8 +94,9 @@ static int ieee802154_nl_fill_iface(struct sk_buff *msg, u32 portid,
94 goto out; 94 goto out;
95 95
96 ops = ieee802154_mlme_ops(dev); 96 ops = ieee802154_mlme_ops(dev);
97 phy = ops->get_phy(dev); 97 phy = dev->ieee802154_ptr->wpan_phy;
98 BUG_ON(!phy); 98 BUG_ON(!phy);
99 get_device(&phy->dev);
99 100
100 short_addr = ops->get_short_addr(dev); 101 short_addr = ops->get_short_addr(dev);
101 pan_id = ops->get_pan_id(dev); 102 pan_id = ops->get_pan_id(dev);
@@ -493,7 +494,8 @@ int ieee802154_set_macparams(struct sk_buff *skb, struct genl_info *info)
493 !info->attrs[IEEE802154_ATTR_FRAME_RETRIES]) 494 !info->attrs[IEEE802154_ATTR_FRAME_RETRIES])
494 goto out; 495 goto out;
495 496
496 phy = ops->get_phy(dev); 497 phy = dev->ieee802154_ptr->wpan_phy;
498 get_device(&phy->dev);
497 499
498 ops->get_mac_params(dev, &params); 500 ops->get_mac_params(dev, &params);
499 501
diff --git a/net/ieee802154/nl-phy.c b/net/ieee802154/nl-phy.c
index 397ca126d9a2..80a946dddd90 100644
--- a/net/ieee802154/nl-phy.c
+++ b/net/ieee802154/nl-phy.c
@@ -287,8 +287,9 @@ int ieee802154_del_iface(struct sk_buff *skb, struct genl_info *info)
287 if (!dev) 287 if (!dev)
288 return -ENODEV; 288 return -ENODEV;
289 289
290 phy = ieee802154_mlme_ops(dev)->get_phy(dev); 290 phy = dev->ieee802154_ptr->wpan_phy;
291 BUG_ON(!phy); 291 BUG_ON(!phy);
292 get_device(&phy->dev);
292 293
293 rc = -EINVAL; 294 rc = -EINVAL;
294 /* phy name is optional, but should be checked if it's given */ 295 /* phy name is optional, but should be checked if it's given */
diff --git a/net/mac802154/iface.c b/net/mac802154/iface.c
index f9ed608aa260..2e2638e72ae8 100644
--- a/net/mac802154/iface.c
+++ b/net/mac802154/iface.c
@@ -428,7 +428,6 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata, int type)
428 case IEEE802154_DEV_MONITOR: 428 case IEEE802154_DEV_MONITOR:
429 sdata->dev->destructor = free_netdev; 429 sdata->dev->destructor = free_netdev;
430 sdata->dev->netdev_ops = &mac802154_monitor_ops; 430 sdata->dev->netdev_ops = &mac802154_monitor_ops;
431 sdata->dev->ml_priv = &mac802154_mlme_reduced;
432 sdata->promisuous_mode = true; 431 sdata->promisuous_mode = true;
433 break; 432 break;
434 default: 433 default:
diff --git a/net/mac802154/mac_cmd.c b/net/mac802154/mac_cmd.c
index e1ad83e35899..00b2b214770e 100644
--- a/net/mac802154/mac_cmd.c
+++ b/net/mac802154/mac_cmd.c
@@ -67,15 +67,6 @@ static int mac802154_mlme_start_req(struct net_device *dev,
67 return rc; 67 return rc;
68} 68}
69 69
70static struct wpan_phy *mac802154_get_phy(const struct net_device *dev)
71{
72 struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
73
74 BUG_ON(dev->type != ARPHRD_IEEE802154);
75
76 return to_phy(get_device(&sdata->local->phy->dev));
77}
78
79static int mac802154_set_mac_params(struct net_device *dev, 70static int mac802154_set_mac_params(struct net_device *dev,
80 const struct ieee802154_mac_params *params) 71 const struct ieee802154_mac_params *params)
81{ 72{
@@ -134,12 +125,7 @@ static struct ieee802154_llsec_ops mac802154_llsec_ops = {
134 .unlock_table = mac802154_unlock_table, 125 .unlock_table = mac802154_unlock_table,
135}; 126};
136 127
137struct ieee802154_reduced_mlme_ops mac802154_mlme_reduced = {
138 .get_phy = mac802154_get_phy,
139};
140
141struct ieee802154_mlme_ops mac802154_mlme_wpan = { 128struct ieee802154_mlme_ops mac802154_mlme_wpan = {
142 .get_phy = mac802154_get_phy,
143 .start_req = mac802154_mlme_start_req, 129 .start_req = mac802154_mlme_start_req,
144 .get_pan_id = mac802154_dev_get_pan_id, 130 .get_pan_id = mac802154_dev_get_pan_id,
145 .get_short_addr = mac802154_dev_get_short_addr, 131 .get_short_addr = mac802154_dev_get_short_addr,