aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-03-01 16:21:40 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-03-10 17:44:23 -0500
commiteae44756d60c4e938259358090dba5df675dced0 (patch)
tree2333b445beb942a4f8f0aecdc3459da9cca8c715 /net
parent44ac91ea8450b0e7a27b4a1fd64aefd35a144728 (diff)
minstrel: make the rate control ops reusable from another rc implementation
This patch makes it possible to reuse the minstrel rate control ops from another rate control module. This is useful in preparing for the new 802.11n implementation of minstrel, which will reuse the old code for legacy stations. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/rc80211_minstrel.c2
-rw-r--r--net/mac80211/rc80211_minstrel.h6
-rw-r--r--net/mac80211/rc80211_minstrel_debugfs.c6
3 files changed, 10 insertions, 4 deletions
diff --git a/net/mac80211/rc80211_minstrel.c b/net/mac80211/rc80211_minstrel.c
index 6e5d68b4e427..4926d929fd9f 100644
--- a/net/mac80211/rc80211_minstrel.c
+++ b/net/mac80211/rc80211_minstrel.c
@@ -541,7 +541,7 @@ minstrel_free(void *priv)
541 kfree(priv); 541 kfree(priv);
542} 542}
543 543
544static struct rate_control_ops mac80211_minstrel = { 544struct rate_control_ops mac80211_minstrel = {
545 .name = "minstrel", 545 .name = "minstrel",
546 .tx_status = minstrel_tx_status, 546 .tx_status = minstrel_tx_status,
547 .get_rate = minstrel_get_rate, 547 .get_rate = minstrel_get_rate,
diff --git a/net/mac80211/rc80211_minstrel.h b/net/mac80211/rc80211_minstrel.h
index 9372656f3f5e..0f5a83370aa6 100644
--- a/net/mac80211/rc80211_minstrel.h
+++ b/net/mac80211/rc80211_minstrel.h
@@ -85,7 +85,13 @@ struct minstrel_debugfs_info {
85 char buf[]; 85 char buf[];
86}; 86};
87 87
88extern struct rate_control_ops mac80211_minstrel;
88void minstrel_add_sta_debugfs(void *priv, void *priv_sta, struct dentry *dir); 89void minstrel_add_sta_debugfs(void *priv, void *priv_sta, struct dentry *dir);
89void minstrel_remove_sta_debugfs(void *priv, void *priv_sta); 90void minstrel_remove_sta_debugfs(void *priv, void *priv_sta);
90 91
92/* debugfs */
93int minstrel_stats_open(struct inode *inode, struct file *file);
94ssize_t minstrel_stats_read(struct file *file, char __user *buf, size_t len, loff_t *ppos);
95int minstrel_stats_release(struct inode *inode, struct file *file);
96
91#endif 97#endif
diff --git a/net/mac80211/rc80211_minstrel_debugfs.c b/net/mac80211/rc80211_minstrel_debugfs.c
index 3e83402ece17..56d0f24957d9 100644
--- a/net/mac80211/rc80211_minstrel_debugfs.c
+++ b/net/mac80211/rc80211_minstrel_debugfs.c
@@ -52,7 +52,7 @@
52#include <net/mac80211.h> 52#include <net/mac80211.h>
53#include "rc80211_minstrel.h" 53#include "rc80211_minstrel.h"
54 54
55static int 55int
56minstrel_stats_open(struct inode *inode, struct file *file) 56minstrel_stats_open(struct inode *inode, struct file *file)
57{ 57{
58 struct minstrel_sta_info *mi = inode->i_private; 58 struct minstrel_sta_info *mi = inode->i_private;
@@ -100,7 +100,7 @@ minstrel_stats_open(struct inode *inode, struct file *file)
100 return 0; 100 return 0;
101} 101}
102 102
103static ssize_t 103ssize_t
104minstrel_stats_read(struct file *file, char __user *buf, size_t len, loff_t *ppos) 104minstrel_stats_read(struct file *file, char __user *buf, size_t len, loff_t *ppos)
105{ 105{
106 struct minstrel_debugfs_info *ms; 106 struct minstrel_debugfs_info *ms;
@@ -109,7 +109,7 @@ minstrel_stats_read(struct file *file, char __user *buf, size_t len, loff_t *ppo
109 return simple_read_from_buffer(buf, len, ppos, ms->buf, ms->len); 109 return simple_read_from_buffer(buf, len, ppos, ms->buf, ms->len);
110} 110}
111 111
112static int 112int
113minstrel_stats_release(struct inode *inode, struct file *file) 113minstrel_stats_release(struct inode *inode, struct file *file)
114{ 114{
115 kfree(file->private_data); 115 kfree(file->private_data);