drivers/net/wireless/ath/wil6210/debugfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
From: Wang Qing <wangqing@vivo.com>
do_div() does a 64-by-32 division.
When the divisor is u64, do_div() truncates it to 32 bits, this means it
can test non-zero and be truncated to zero for division.
fix do_div.cocci warning:
do_div() does a 64-by-32 division, please consider using div64_u64 instead.
Signed-off-by: Wang Qing <wangqing@vivo.com>
---
drivers/net/wireless/ath/wil6210/debugfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c
index 4c944e5..2cee9dd
--- a/drivers/net/wireless/ath/wil6210/debugfs.c
+++ b/drivers/net/wireless/ath/wil6210/debugfs.c
@@ -1766,7 +1766,7 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock)
seq_puts(s, "\n");
if (!num_packets)
continue;
- do_div(tx_latency_avg, num_packets);
+ div64_u64(tx_latency_avg, num_packets);
seq_printf(s, "Tx/Latency min/avg/max (us): %d/%lld/%d",
p->stats.tx_latency_min_us,
tx_latency_avg,
--
2.7.4
Qing Wang <wangqing@vivo.com> writes: > From: Wang Qing <wangqing@vivo.com> > > do_div() does a 64-by-32 division. > When the divisor is u64, do_div() truncates it to 32 bits, this means it > can test non-zero and be truncated to zero for division. > > fix do_div.cocci warning: > do_div() does a 64-by-32 division, please consider using div64_u64 instead. > > Signed-off-by: Wang Qing <wangqing@vivo.com> > --- > drivers/net/wireless/ath/wil6210/debugfs.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) The subject prefix should be "wil6210:", but I can fix that. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Qing Wang <wangqing@vivo.com> writes: > From: Wang Qing <wangqing@vivo.com> > > do_div() does a 64-by-32 division. > When the divisor is u64, do_div() truncates it to 32 bits, this means it > can test non-zero and be truncated to zero for division. > > fix do_div.cocci warning: > do_div() does a 64-by-32 division, please consider using div64_u64 instead. > > Signed-off-by: Wang Qing <wangqing@vivo.com> > --- > drivers/net/wireless/ath/wil6210/debugfs.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c > index 4c944e5..2cee9dd > --- a/drivers/net/wireless/ath/wil6210/debugfs.c > +++ b/drivers/net/wireless/ath/wil6210/debugfs.c > @@ -1766,7 +1766,7 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock) > seq_puts(s, "\n"); > if (!num_packets) > continue; > - do_div(tx_latency_avg, num_packets); > + div64_u64(tx_latency_avg, num_packets); As you have been pointed out in your other patches, do_div() and div64_u64() work differently. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
From: Kalle Valo > Sent: 10 February 2022 12:16 > > Qing Wang <wangqing@vivo.com> writes: > > > From: Wang Qing <wangqing@vivo.com> > > > > do_div() does a 64-by-32 division. > > When the divisor is u64, do_div() truncates it to 32 bits, this means it > > can test non-zero and be truncated to zero for division. > > > > fix do_div.cocci warning: > > do_div() does a 64-by-32 division, please consider using div64_u64 instead. > > > > Signed-off-by: Wang Qing <wangqing@vivo.com> > > --- > > drivers/net/wireless/ath/wil6210/debugfs.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c > > index 4c944e5..2cee9dd > > --- a/drivers/net/wireless/ath/wil6210/debugfs.c > > +++ b/drivers/net/wireless/ath/wil6210/debugfs.c > > @@ -1766,7 +1766,7 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock) > > seq_puts(s, "\n"); > > if (!num_packets) > > continue; > > - do_div(tx_latency_avg, num_packets); > > + div64_u64(tx_latency_avg, num_packets); > > As you have been pointed out in your other patches, do_div() and > div64_u64() work differently. And how long does it take for num_packets to exceed 2^32. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
© 2016 - 2026 Red Hat, Inc.