Fix for __div64_32 locks when using some 64 bit numbers

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Mar 18 10:03:04 EST 2009


On Tue, 2009-03-17 at 14:15 -0700, davidastro wrote:
> I found a bug when using the function __div64_32 in assembly in a 32 bit ppc
> architecture unit.
> 
> I tried the numbers 55834565048000000 for the dividend and 4294967079 for
> the divisor. When passing these two numbers to the function  __div64_32, I
> had a software lock. I searched for possible patches online and in different
> forums but I could not find anything related to the assembly implementation
> to this function (I would have to apologize if somebody already found a fix
> :-) ).
> 
> Anyway, when analyzing the assembly code, I found out with gdb the problem.
> I am not an expert in ppc architecture but I read the documentation and I am
> pretty sure I solved the issue (I have been testing for couple of days using
> random 64 to 32 number combinations with good results).
> 
> Who or Where should I post the fix to be reviewed.

Here is fine :-)

Ben.





More information about the Linuxppc-dev mailing list