]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blob - include/vdso/math64.h
Merge tag 'core_core_updates_for_5.8' of git://git.kernel.org/pub/scm/linux/kernel...
[mirror_ubuntu-jammy-kernel.git] / include / vdso / math64.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __VDSO_MATH64_H
3 #define __VDSO_MATH64_H
4
5 static __always_inline u32
6 __iter_div_u64_rem(u64 dividend, u32 divisor, u64 *remainder)
7 {
8 u32 ret = 0;
9
10 while (dividend >= divisor) {
11 /* The following asm() prevents the compiler from
12 optimising this loop into a modulo operation. */
13 asm("" : "+rm"(dividend));
14
15 dividend -= divisor;
16 ret++;
17 }
18
19 *remainder = dividend;
20
21 return ret;
22 }
23
24 #endif /* __VDSO_MATH64_H */