Messages in this thread Patch in this message | | | Date | Mon, 2 Aug 2010 18:09:51 +0200 | From | Oleg Nesterov <> | Subject | [PATCH] trivial, document that div64_u64() is not precise on 32bit platforms |
| |
We have a bugreport which blames div64_u64() on 32bit platforms.
However, the code obviously doesn't even try to pretend it can do the 64bit division precisely. If there is something in the high word of divisor, div64_u64() just shifts both arguments and throws out the low bits.
Add a small comment to avoid the confusion.
Signed-off-by: Oleg Nesterov <oleg@redhat.com> ---
lib/div64.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
--- a/lib/div64.c +++ b/lib/div64.c @@ -77,7 +77,10 @@ s64 div_s64_rem(s64 dividend, s32 diviso EXPORT_SYMBOL(div_s64_rem); #endif -/* 64bit divisor, dividend and result. dynamic precision */ +/* + * 64bit divisor, dividend and result. Dynamic precision, unless + * divisor fits in u32 result is not exactly correct. + */ #ifndef div64_u64 u64 div64_u64(u64 dividend, u64 divisor) {
| |