mac80211: add driver ops wrappers
In order to later add tracing or verifications to the driver calls mac80211 makes, this patch adds static inline wrappers for all operations. All calls are now written as drv_<op>(local, ...); instead of local->ops-><op>(&local->hw, ...); Where necessary, the wrappers also do existence checking and return default values as appropriate. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
2d0ddec5b2
commit
2448798133
@@ -10,6 +10,7 @@
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include "ieee80211_i.h"
|
||||
#include "driver-ops.h"
|
||||
#include "rate.h"
|
||||
#include "debugfs.h"
|
||||
|
||||
@@ -70,11 +71,10 @@ static ssize_t tsf_read(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct ieee80211_local *local = file->private_data;
|
||||
u64 tsf = 0;
|
||||
u64 tsf;
|
||||
char buf[100];
|
||||
|
||||
if (local->ops->get_tsf)
|
||||
tsf = local->ops->get_tsf(local_to_hw(local));
|
||||
tsf = drv_get_tsf(local);
|
||||
|
||||
snprintf(buf, sizeof(buf), "0x%016llx\n", (unsigned long long) tsf);
|
||||
|
||||
@@ -97,13 +97,13 @@ static ssize_t tsf_write(struct file *file,
|
||||
|
||||
if (strncmp(buf, "reset", 5) == 0) {
|
||||
if (local->ops->reset_tsf) {
|
||||
local->ops->reset_tsf(local_to_hw(local));
|
||||
drv_reset_tsf(local);
|
||||
printk(KERN_INFO "%s: debugfs reset TSF\n", wiphy_name(local->hw.wiphy));
|
||||
}
|
||||
} else {
|
||||
tsf = simple_strtoul(buf, NULL, 0);
|
||||
if (local->ops->set_tsf) {
|
||||
local->ops->set_tsf(local_to_hw(local), tsf);
|
||||
drv_set_tsf(local, tsf);
|
||||
printk(KERN_INFO "%s: debugfs set TSF to %#018llx\n", wiphy_name(local->hw.wiphy), tsf);
|
||||
}
|
||||
}
|
||||
@@ -150,14 +150,12 @@ static ssize_t format_devstat_counter(struct ieee80211_local *local,
|
||||
char buf[20];
|
||||
int res;
|
||||
|
||||
if (!local->ops->get_stats)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
rtnl_lock();
|
||||
res = local->ops->get_stats(local_to_hw(local), &stats);
|
||||
res = drv_get_stats(local, &stats);
|
||||
rtnl_unlock();
|
||||
if (!res)
|
||||
res = printvalue(&stats, buf, sizeof(buf));
|
||||
if (res)
|
||||
return res;
|
||||
res = printvalue(&stats, buf, sizeof(buf));
|
||||
return simple_read_from_buffer(userbuf, count, ppos, buf, res);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user