Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: openvswitch: use div_u64() for 64-by-32 divisions

Compile the kernel for arm 32 platform, the build warning found.
To fix that, should use div_u64() for divisions.
| net/openvswitch/meter.c:396: undefined reference to `__udivdi3'

[add more commit msg, change reported tag, and use div_u64 instead
of do_div by Tonghao]

Fixes: e57358873bb5d6ca ("net: openvswitch: use u64 for meter bucket")
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Tested-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Tonghao Zhang and committed by
David S. Miller
659d4587 4b36a0df

+1 -1
+1 -1
net/openvswitch/meter.c
··· 393 393 * Start with a full bucket. 394 394 */ 395 395 band->bucket = (band->burst_size + band->rate) * 1000ULL; 396 - band_max_delta_t = band->bucket / band->rate; 396 + band_max_delta_t = div_u64(band->bucket, band->rate); 397 397 if (band_max_delta_t > meter->max_delta_t) 398 398 meter->max_delta_t = band_max_delta_t; 399 399 band++;