Stanislaw Gruszka cdc94a3749 lib/div64.c: off by one in shift
fls counts bits starting from 1 to 32 (returns 0 for zero argument).  If
we add 1 we shift right one bit more and loose precision from divisor,
what cause function incorect results with some numbers.

Corrected code was tested in user-space, see bugzilla:
   https://bugzilla.kernel.org/show_bug.cgi?id=202391

Link: http://lkml.kernel.org/r/1548686944-11891-1-git-send-email-sgruszka@redhat.com
Fixes: 658716d19f8f ("div64_u64(): improve precision on 32bit platforms")
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Reported-by: Siarhei Volkau <lis8215@gmail.com>
Tested-by: Siarhei Volkau <lis8215@gmail.com>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-03-07 18:32:00 -08:00
..
2019-01-06 16:33:10 -08:00
2018-07-10 15:00:52 -06:00
2018-08-22 10:52:48 -07:00
2017-12-01 13:09:40 -08:00
2017-12-01 13:09:40 -08:00
2018-10-12 09:17:46 +02:00
2018-08-16 12:14:42 -07:00
2017-12-01 13:09:40 -08:00
2018-08-22 10:52:48 -07:00
2019-03-07 18:32:00 -08:00
2018-02-06 18:32:44 -08:00
2019-01-05 13:54:53 -08:00
2017-02-24 17:46:57 -08:00
2018-06-12 16:19:22 -07:00
2018-04-12 09:41:19 -07:00
2018-06-12 16:19:22 -07:00
2017-12-01 13:09:40 -08:00
2018-10-16 13:45:44 +02:00
2017-12-01 13:09:40 -08:00
2018-10-16 13:45:44 +02:00
2018-06-27 18:58:49 +03:00
2018-10-15 16:31:29 -04:00
2018-04-23 16:39:35 +01:00
2017-08-15 09:02:07 -07:00