lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 3 Aug 2010 15:28:12 -0700
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	Oleg Nesterov <oleg@...hat.com>
Cc:	Ben Woodard <bwoodard@...l.gov>,
	Brian Behlendorf <behlendorf1@...l.gov>,
	Jeremy Fitzhardinge <jeremy@...p.org>,
	Mark Grondona <mgrondona@...l.gov>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] trivial, document that div64_u64() is not precise on
 32bit platforms

On Mon, 2 Aug 2010 18:09:51 +0200
Oleg Nesterov <oleg@...hat.com> wrote:

> 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@...hat.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)
>  {

Well that was a bit lazy of us - I wonder how hard it is to fix.

At present people will test their code on 64-bit only to find out later
that it doesn't work correctly on 32-bit.  Bad.  Perhaps we should
similarly break the 64-bit version :)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ