summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>2014-06-20 10:05:07 +0300
committerJohn W. Linville <linville@tuxdriver.com>2014-06-20 14:13:45 -0400
commite48b1790907c960b9d4f28cf7da9e0c25c5d02df (patch)
treea2e896fd3ceb766cb91a0cc9664ee8259b33721c /drivers/net
parent6451acdc4f716610043442016f76a0b849c06ea6 (diff)
wil6210: fix for 64-bit integer division
On some platforms, cycles_t is 64-bit, and gcc generates call to __udivdi3 for straight division of cycles_t/cycles_t. This leads to compilation failure, as this function is not exist in the kernel runtime. do_div() to rescue Original report: tree: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next.git master head: 2e91606f5e1ec7329557dfc0e298c4c021acbb80 commit: 7c0acf868d2e470c9d6a40091acf8d6444c01b57 [81/103] wil6210: Tx performance monitoring config: i386-randconfig-ha3-0620 (attached as .config) All error/warnings: drivers/built-in.o: In function `wil_vring_debugfs_show': >> debugfs.c:(.text+0x39b9be): undefined reference to `__udivdi3' Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/wil6210/debugfs.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c
index 7d1ef4eea0d8..a868c5eebe37 100644
--- a/drivers/net/wireless/ath/wil6210/debugfs.c
+++ b/drivers/net/wireless/ath/wil6210/debugfs.c
@@ -83,9 +83,10 @@ static int wil_vring_debugfs_show(struct seq_file *s, void *data)
char name[10];
/* performance monitoring */
cycles_t now = get_cycles();
- cycles_t idle = txdata->idle;
+ cycles_t idle = txdata->idle * 100;
cycles_t total = now - txdata->begin;
+ do_div(idle, total);
txdata->begin = now;
txdata->idle = 0ULL;
@@ -93,7 +94,7 @@ static int wil_vring_debugfs_show(struct seq_file *s, void *data)
seq_printf(s, "\n%pM CID %d TID %d [%3d|%3d] idle %3d%%\n",
wil->sta[cid].addr, cid, tid, used, avail,
- (int)((idle*100)/total));
+ (int)idle);
wil_print_vring(s, wil, name, vring, '_', 'H');
}