]> git.baikalelectronics.ru Git - kernel.git/commit
[S390] __div64_31 broken for CONFIG_MARCH_G5
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 18 Mar 2009 12:27:32 +0000 (13:27 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 18 Mar 2009 12:28:12 +0000 (13:28 +0100)
commit97cd4463cdacedfcc319cc8bd8cc1a671a82cff4
treefab8df760ab6a01b9051c67b914c6e6b208607ba
parent169752d4aaa8869b10760464b11743582ea18b54
[S390] __div64_31 broken for CONFIG_MARCH_G5

The implementation of __div64_31 for G5 machines is broken. The comments
in __div64_31 are correct, only the code does not do what the comments
say. The part "If the remainder has overflown subtract base and increase
the quotient" is only partially realized, the base is subtracted correctly
but the quotient is only increased if the dividend had the last bit set.
Using the correct instruction fixes the problem.

Cc: stable@kernel.org
Reported-by: Frans Pop <elendil@planet.nl>
Tested-by: Frans Pop <elendil@planet.nl>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/lib/div64.c