|
@@ -63,8 +63,8 @@ minstrel_ht_stats_dump(struct minstrel_ht_sta *mi, int i, char *p)
|
|
|
prob = MINSTREL_TRUNC(mr->cur_prob * 1000);
|
|
|
eprob = MINSTREL_TRUNC(mr->probability * 1000);
|
|
|
|
|
|
- p += sprintf(p, " %6u.%1u %6u.%1u %6u.%1u "
|
|
|
- "%3u %3u(%3u) %8llu %8llu\n",
|
|
|
+ p += sprintf(p, " %4u.%1u %3u.%1u %3u.%1u "
|
|
|
+ "%3u %4u(%4u) %9llu(%9llu)\n",
|
|
|
tp / 10, tp % 10,
|
|
|
eprob / 10, eprob % 10,
|
|
|
prob / 10, prob % 10,
|
|
@@ -96,14 +96,15 @@ minstrel_ht_stats_open(struct inode *inode, struct file *file)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
- ms = kmalloc(sizeof(*ms) + 8192, GFP_KERNEL);
|
|
|
+ ms = kmalloc(8192, GFP_KERNEL);
|
|
|
if (!ms)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
file->private_data = ms;
|
|
|
p = ms->buf;
|
|
|
- p += sprintf(p, "type rate throughput ewma prob "
|
|
|
- "this prob retry this succ/attempt success attempts\n");
|
|
|
+ p += sprintf(p, "type rate tpt eprob *prob "
|
|
|
+ "ret *ok(*cum) ok( cum)\n");
|
|
|
+
|
|
|
|
|
|
p = minstrel_ht_stats_dump(mi, max_mcs, p);
|
|
|
for (i = 0; i < max_mcs; i++)
|
|
@@ -118,6 +119,8 @@ minstrel_ht_stats_open(struct inode *inode, struct file *file)
|
|
|
MINSTREL_TRUNC(mi->avg_ampdu_len * 10) % 10);
|
|
|
ms->len = p - ms->buf;
|
|
|
|
|
|
+ WARN_ON(ms->len + sizeof(*ms) > 8192);
|
|
|
+
|
|
|
return nonseekable_open(inode, file);
|
|
|
}
|
|
|
|