Joe Perches schrieb: > On Mon, 2009-08-24 at 19:42 +0200, Arnd Hannemann wrote: >> An integer overflow in the minstrel debug code prevented the >> throughput to be displayed correctly. This patch fixes that, >> by swaping the division and multiplication. >> >> Signed-off-by: Arnd Hannemann <hannemann@xxxxxxxxxxxxxxxxxxx> >> --- >> net/mac80211/rc80211_minstrel_debugfs.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/net/mac80211/rc80211_minstrel_debugfs.c b/net/mac80211/rc80211_minstrel_debugfs.c >> index 98f4807..caf9453 100644 >> --- a/net/mac80211/rc80211_minstrel_debugfs.c >> +++ b/net/mac80211/rc80211_minstrel_debugfs.c >> @@ -83,7 +83,7 @@ minstrel_stats_open(struct inode *inode, struct file *file) >> p += sprintf(p, "%3u%s", mr->bitrate / 2, >> (mr->bitrate & 1 ? ".5" : " ")); >> >> - tp = ((mr->cur_tp * 96) / 18000) >> 10; >> + tp = ((mr->cur_tp / 18000) * 96) >> 10; > > Maybe do_div instead? Do you mean the do_div from asm/div64h ? It seems overly complicated to me. It would result in something like: tp = mr->cur_tp; do_div(tp, 18000); tp = (tp * 96) >> 10; Or am I missing something? Probably tp = mr->cur_tp * 96; would not work..., as it would already overflow. Not sure if do_div(tp * 96, 18000); would work? Best regards, Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html