diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-03-07 16:29:28 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-03-07 16:29:28 +0000 | 
| commit | cdd6a4a8bca8db2f4867f6677e73b2ee2691fadd (patch) | |
| tree | e9d898fd61d6ae5637b7a2e604e468439bdf3db8 /package/mac80211/patches/540-minstrel_debugfs_cleanup.patch | |
| parent | 34cb0380a260fbb9f2fdc853d85d7dd34e567cd6 (diff) | |
mac80211: update to wireless-testing 2010-03-03
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20032 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/540-minstrel_debugfs_cleanup.patch')
| -rw-r--r-- | package/mac80211/patches/540-minstrel_debugfs_cleanup.patch | 80 | 
1 files changed, 80 insertions, 0 deletions
| diff --git a/package/mac80211/patches/540-minstrel_debugfs_cleanup.patch b/package/mac80211/patches/540-minstrel_debugfs_cleanup.patch new file mode 100644 index 000000000..9a13bae70 --- /dev/null +++ b/package/mac80211/patches/540-minstrel_debugfs_cleanup.patch @@ -0,0 +1,80 @@ +--- a/net/mac80211/rc80211_minstrel.h ++++ b/net/mac80211/rc80211_minstrel.h +@@ -80,6 +80,11 @@ struct minstrel_priv { + 	unsigned int lookaround_rate_mrr; + }; +  ++struct minstrel_debugfs_info { ++	size_t len; ++	char buf[]; ++}; ++ + void minstrel_add_sta_debugfs(void *priv, void *priv_sta, struct dentry *dir); + void minstrel_remove_sta_debugfs(void *priv, void *priv_sta); +  +--- a/net/mac80211/rc80211_minstrel_debugfs.c ++++ b/net/mac80211/rc80211_minstrel_debugfs.c +@@ -52,21 +52,15 @@ + #include <net/mac80211.h> + #include "rc80211_minstrel.h" +  +-struct minstrel_stats_info { +-	struct minstrel_sta_info *mi; +-	char buf[4096]; +-	size_t len; +-}; +- + static int + minstrel_stats_open(struct inode *inode, struct file *file) + { + 	struct minstrel_sta_info *mi = inode->i_private; +-	struct minstrel_stats_info *ms; ++	struct minstrel_debugfs_info *ms; + 	unsigned int i, tp, prob, eprob; + 	char *p; +  +-	ms = kmalloc(sizeof(*ms), GFP_KERNEL); ++	ms = kmalloc(sizeof(*ms) + 4096, GFP_KERNEL); + 	if (!ms) + 		return -ENOMEM; +  +@@ -107,35 +101,18 @@ minstrel_stats_open(struct inode *inode, + } +  + static ssize_t +-minstrel_stats_read(struct file *file, char __user *buf, size_t len, loff_t *o) ++minstrel_stats_read(struct file *file, char __user *buf, size_t len, loff_t *ppos) + { +-	struct minstrel_stats_info *ms; +-	char *src; ++	struct minstrel_debugfs_info *ms; +  + 	ms = file->private_data; +-	src = ms->buf; +- +-	len = min(len, ms->len); +-	if (len <= *o) +-		return 0; +- +-	src += *o; +-	len -= *o; +-	*o += len; +- +-	if (copy_to_user(buf, src, len)) +-		return -EFAULT; +- +-	return len; ++	return simple_read_from_buffer(buf, len, ppos, ms->buf, ms->len); + } +  + static int + minstrel_stats_release(struct inode *inode, struct file *file) + { +-	struct minstrel_stats_info *ms = file->private_data; +- +-	kfree(ms); +- ++	kfree(file->private_data); + 	return 0; + } +  | 
