Fix for __div64_32 locks when using some 64 bit numbers

Benjamin Herrenschmidt benh at kernel.crashing.org
Sun Mar 22 08:46:13 EST 2009


On Fri, 2009-03-20 at 12:33 -0700, davidastro wrote:
> Hi Ben:
> 
> I was wondering if you have any change to look into and test the propose fix
> I suggested in my previous post.
> I'd like to know if the fix is correct.

Sorry, I haven't had a chance yet. I will asap.

Ben.

> Thanks for your attention,
> 
> 
> Benjamin Herrenschmidt wrote:
> > 
> > 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.
> > 
> > 
> > _______________________________________________
> > Linuxppc-dev mailing list
> > Linuxppc-dev at ozlabs.org
> > https://ozlabs.org/mailman/listinfo/linuxppc-dev
> > 
> > 
> 




More information about the Linuxppc-dev mailing list