Skip to content

Commit

Permalink
cfg80211: add wrappers for registered_device_ops
Browse files Browse the repository at this point in the history
This will allow adding central tracing like in mac80211.

Signed-off-by: Hila Gonen <hila.gonen@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  • Loading branch information
Hila Gonen authored and Johannes Berg committed Oct 18, 2012
1 parent de7044e commit e35e4d2
Show file tree
Hide file tree
Showing 14 changed files with 700 additions and 148 deletions.
3 changes: 2 additions & 1 deletion net/wireless/ap.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <net/cfg80211.h>
#include "nl80211.h"
#include "core.h"
#include "rdev-ops.h"


static int __cfg80211_stop_ap(struct cfg80211_registered_device *rdev,
Expand All @@ -23,7 +24,7 @@ static int __cfg80211_stop_ap(struct cfg80211_registered_device *rdev,
if (!wdev->beacon_interval)
return -ENOENT;

err = rdev->ops->stop_ap(&rdev->wiphy, dev);
err = rdev_stop_ap(rdev, dev);
if (!err) {
wdev->beacon_interval = 0;
wdev->channel = NULL;
Expand Down
3 changes: 2 additions & 1 deletion net/wireless/chan.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <linux/export.h>
#include <net/cfg80211.h>
#include "core.h"
#include "rdev-ops.h"

struct ieee80211_channel *
rdev_freq_to_chan(struct cfg80211_registered_device *rdev,
Expand Down Expand Up @@ -92,7 +93,7 @@ int cfg80211_set_monitor_channel(struct cfg80211_registered_device *rdev,
if (!chan)
return -EINVAL;

return rdev->ops->set_monitor_channel(&rdev->wiphy, chan, chantype);
return rdev_set_monitor_channel(rdev, chan, chantype);
}

void
Expand Down
10 changes: 5 additions & 5 deletions net/wireless/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include "debugfs.h"
#include "wext-compat.h"
#include "ethtool.h"
#include "rdev-ops.h"

/* name for sysfs, %d is appended */
#define PHY_NAME "phy"
Expand Down Expand Up @@ -216,7 +217,7 @@ static void cfg80211_rfkill_poll(struct rfkill *rfkill, void *data)
{
struct cfg80211_registered_device *rdev = data;

rdev->ops->rfkill_poll(&rdev->wiphy);
rdev_rfkill_poll(rdev);
}

static int cfg80211_rfkill_set_block(void *data, bool blocked)
Expand Down Expand Up @@ -690,7 +691,7 @@ void wiphy_unregister(struct wiphy *wiphy)
flush_work(&rdev->event_work);

if (rdev->wowlan && rdev->ops->set_wakeup)
rdev->ops->set_wakeup(&rdev->wiphy, false);
rdev_set_wakeup(rdev, false);
cfg80211_rdev_free_wowlan(rdev);
}
EXPORT_SYMBOL(wiphy_unregister);
Expand Down Expand Up @@ -964,9 +965,8 @@ static int cfg80211_netdev_notifier_call(struct notifier_block *nb,
if ((wdev->iftype == NL80211_IFTYPE_STATION ||
wdev->iftype == NL80211_IFTYPE_P2P_CLIENT) &&
rdev->ops->set_power_mgmt)
if (rdev->ops->set_power_mgmt(wdev->wiphy, dev,
wdev->ps,
wdev->ps_timeout)) {
if (rdev_set_power_mgmt(rdev, dev, wdev->ps,
wdev->ps_timeout)) {
/* assume this means it's off */
wdev->ps = false;
}
Expand Down
15 changes: 7 additions & 8 deletions net/wireless/ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include <net/cfg80211.h>
#include "core.h"
#include "ethtool.h"
#include "rdev-ops.h"

static void cfg80211_get_drvinfo(struct net_device *dev,
struct ethtool_drvinfo *info)
Expand Down Expand Up @@ -47,9 +48,8 @@ static void cfg80211_get_ringparam(struct net_device *dev,
memset(rp, 0, sizeof(*rp));

if (rdev->ops->get_ringparam)
rdev->ops->get_ringparam(wdev->wiphy,
&rp->tx_pending, &rp->tx_max_pending,
&rp->rx_pending, &rp->rx_max_pending);
rdev_get_ringparam(rdev, &rp->tx_pending, &rp->tx_max_pending,
&rp->rx_pending, &rp->rx_max_pending);
}

static int cfg80211_set_ringparam(struct net_device *dev,
Expand All @@ -62,8 +62,7 @@ static int cfg80211_set_ringparam(struct net_device *dev,
return -EINVAL;

if (rdev->ops->set_ringparam)
return rdev->ops->set_ringparam(wdev->wiphy,
rp->tx_pending, rp->rx_pending);
return rdev_set_ringparam(rdev, rp->tx_pending, rp->rx_pending);

return -ENOTSUPP;
}
Expand All @@ -73,7 +72,7 @@ static int cfg80211_get_sset_count(struct net_device *dev, int sset)
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);
if (rdev->ops->get_et_sset_count)
return rdev->ops->get_et_sset_count(wdev->wiphy, dev, sset);
return rdev_get_et_sset_count(rdev, dev, sset);
return -EOPNOTSUPP;
}

Expand All @@ -83,15 +82,15 @@ static void cfg80211_get_stats(struct net_device *dev,
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);
if (rdev->ops->get_et_stats)
rdev->ops->get_et_stats(wdev->wiphy, dev, stats, data);
rdev_get_et_stats(rdev, dev, stats, data);
}

static void cfg80211_get_strings(struct net_device *dev, u32 sset, u8 *data)
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);
if (rdev->ops->get_et_strings)
rdev->ops->get_et_strings(wdev->wiphy, dev, sset, data);
rdev_get_et_strings(rdev, dev, sset, data);
}

const struct ethtool_ops cfg80211_ethtool_ops = {
Expand Down
7 changes: 4 additions & 3 deletions net/wireless/ibss.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <net/cfg80211.h>
#include "wext-compat.h"
#include "nl80211.h"
#include "rdev-ops.h"


void __cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid)
Expand Down Expand Up @@ -128,7 +129,7 @@ int __cfg80211_join_ibss(struct cfg80211_registered_device *rdev,
return err;
}

err = rdev->ops->join_ibss(&rdev->wiphy, dev, params);
err = rdev_join_ibss(rdev, dev, params);
if (err) {
wdev->connect_keys = NULL;
wdev->sme_state = CFG80211_SME_IDLE;
Expand Down Expand Up @@ -175,7 +176,7 @@ static void __cfg80211_clear_ibss(struct net_device *dev, bool nowext)
*/
if (rdev->ops->del_key)
for (i = 0; i < 6; i++)
rdev->ops->del_key(wdev->wiphy, dev, i, false, NULL);
rdev_del_key(rdev, dev, i, false, NULL);

if (wdev->current_bss) {
cfg80211_unhold_bss(wdev->current_bss);
Expand Down Expand Up @@ -211,7 +212,7 @@ int __cfg80211_leave_ibss(struct cfg80211_registered_device *rdev,
if (!wdev->ssid_len)
return -ENOLINK;

err = rdev->ops->leave_ibss(&rdev->wiphy, dev);
err = rdev_leave_ibss(rdev, dev);

if (err)
return err;
Expand Down
10 changes: 5 additions & 5 deletions net/wireless/mesh.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <net/cfg80211.h>
#include "nl80211.h"
#include "core.h"
#include "rdev-ops.h"

/* Default values, timeouts in ms */
#define MESH_TTL 31
Expand Down Expand Up @@ -160,7 +161,7 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
if (err)
return err;

err = rdev->ops->join_mesh(&rdev->wiphy, dev, conf, setup);
err = rdev_join_mesh(rdev, dev, conf, setup);
if (!err) {
memcpy(wdev->ssid, setup->mesh_id, setup->mesh_id_len);
wdev->mesh_id_len = setup->mesh_id_len;
Expand Down Expand Up @@ -220,9 +221,8 @@ int cfg80211_set_mesh_freq(struct cfg80211_registered_device *rdev,
if (err)
return err;

err = rdev->ops->libertas_set_mesh_channel(&rdev->wiphy,
wdev->netdev,
channel);
err = rdev_libertas_set_mesh_channel(rdev, wdev->netdev,
channel);
if (!err)
wdev->channel = channel;

Expand Down Expand Up @@ -267,7 +267,7 @@ static int __cfg80211_leave_mesh(struct cfg80211_registered_device *rdev,
if (!wdev->mesh_id_len)
return -ENOTCONN;

err = rdev->ops->leave_mesh(&rdev->wiphy, dev);
err = rdev_leave_mesh(rdev, dev);
if (!err) {
wdev->mesh_id_len = 0;
wdev->channel = NULL;
Expand Down
26 changes: 14 additions & 12 deletions net/wireless/mlme.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
#include <net/iw_handler.h>
#include "core.h"
#include "nl80211.h"
#include "rdev-ops.h"


void cfg80211_send_rx_auth(struct net_device *dev, const u8 *buf, size_t len)
{
Expand Down Expand Up @@ -310,7 +312,7 @@ int __cfg80211_mlme_auth(struct cfg80211_registered_device *rdev,
if (err)
goto out;

err = rdev->ops->auth(&rdev->wiphy, dev, &req);
err = rdev_auth(rdev, dev, &req);

out:
cfg80211_put_bss(req.bss);
Expand Down Expand Up @@ -415,7 +417,7 @@ int __cfg80211_mlme_assoc(struct cfg80211_registered_device *rdev,
if (err)
goto out;

err = rdev->ops->assoc(&rdev->wiphy, dev, &req);
err = rdev_assoc(rdev, dev, &req);

out:
if (err) {
Expand Down Expand Up @@ -477,7 +479,7 @@ int __cfg80211_mlme_deauth(struct cfg80211_registered_device *rdev,
return 0;
}

return rdev->ops->deauth(&rdev->wiphy, dev, &req);
return rdev_deauth(rdev, dev, &req);
}

int cfg80211_mlme_deauth(struct cfg80211_registered_device *rdev,
Expand Down Expand Up @@ -522,7 +524,7 @@ static int __cfg80211_mlme_disassoc(struct cfg80211_registered_device *rdev,
else
return -ENOTCONN;

return rdev->ops->disassoc(&rdev->wiphy, dev, &req);
return rdev_disassoc(rdev, dev, &req);
}

int cfg80211_mlme_disassoc(struct cfg80211_registered_device *rdev,
Expand Down Expand Up @@ -563,7 +565,7 @@ void cfg80211_mlme_down(struct cfg80211_registered_device *rdev,

memcpy(bssid, wdev->current_bss->pub.bssid, ETH_ALEN);
req.bssid = bssid;
rdev->ops->deauth(&rdev->wiphy, dev, &req);
rdev_deauth(rdev, dev, &req);

if (wdev->current_bss) {
cfg80211_unhold_bss(wdev->current_bss);
Expand Down Expand Up @@ -693,7 +695,7 @@ int cfg80211_mlme_register_mgmt(struct wireless_dev *wdev, u32 snd_portid,
list_add(&nreg->list, &wdev->mgmt_registrations);

if (rdev->ops->mgmt_frame_register)
rdev->ops->mgmt_frame_register(wiphy, wdev, frame_type, true);
rdev_mgmt_frame_register(rdev, wdev, frame_type, true);

out:
spin_unlock_bh(&wdev->mgmt_registrations_lock);
Expand All @@ -716,8 +718,8 @@ void cfg80211_mlme_unregister_socket(struct wireless_dev *wdev, u32 nlportid)
if (rdev->ops->mgmt_frame_register) {
u16 frame_type = le16_to_cpu(reg->frame_type);

rdev->ops->mgmt_frame_register(wiphy, wdev,
frame_type, false);
rdev_mgmt_frame_register(rdev, wdev,
frame_type, false);
}

list_del(&reg->list);
Expand Down Expand Up @@ -843,10 +845,10 @@ int cfg80211_mlme_mgmt_tx(struct cfg80211_registered_device *rdev,
return -EINVAL;

/* Transmit the Action frame as requested by user space */
return rdev->ops->mgmt_tx(&rdev->wiphy, wdev, chan, offchan,
channel_type, channel_type_valid,
wait, buf, len, no_cck, dont_wait_for_ack,
cookie);
return rdev_mgmt_tx(rdev, wdev, chan, offchan,
channel_type, channel_type_valid,
wait, buf, len, no_cck, dont_wait_for_ack,
cookie);
}

bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_mbm,
Expand Down
Loading

0 comments on commit e35e4d2

Please sign in to comment.