Re: [PATCH] MIPS: Fix a longstanding error in div64.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, Maciej,

On Wed, Apr 7, 2021 at 9:38 PM Maciej W. Rozycki <macro@xxxxxxxxxxx> wrote:
>
> On Wed, 7 Apr 2021, Huacai Chen wrote:
>
> > >  This code is rather broken in an obvious way, starting from:
> > >
> > >         unsigned long long __n;                                         \
> > >                                                                         \
> > >         __high = *__n >> 32;                                            \
> > >         __low = __n;                                                    \
> > >
> > > where `__n' is used uninitialised.  Since this is my code originally I'll
> > > look into it; we may want to reinstate `do_div' too, which didn't have to
> > > be removed in the first place.
> > I think we can reuse the generic do_div().
>
>  We can, but it's not clear to me if this is optimal.  We have a DIVMOD
> instruction which original code took advantage of (although I can see
> potential in reusing bits from include/asm-generic/div64.h).  The two
> implementations would have to be benchmarked against each other across a
> couple of different CPUs.
The original MIPS do_div() has "h" constraint, and this is also the
reason why Ralf rewrote this file. How can we reintroduce do_div()
without "h" constraint?

Huacai
>
> > >  Huacai, thanks for your investigation!  Please be more careful in
> > > verifying your future submissions however.
> > Sorry, I thought there is only one bug in div64.h, but in fact there
> > are three...
>
>  This just shows the verification you made was not good enough, hence my
> observation.
>
>   Maciej



[Index of Archives]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux