Messages in this thread | | | Date | Fri, 5 Jun 2009 10:24:40 -0700 | From | Andrew Morton <> | Subject | Re: [2.6.30-rc8] gcc 3.3 : __udivdi3 undefined. |
| |
On Fri, 5 Jun 2009 11:37:25 +0200 Andreas Herrmann <andreas.herrmann3@amd.com> wrote:
> On Fri, Jun 05, 2009 at 12:03:10AM -0700, Andrew Morton wrote: > > On Fri, 05 Jun 2009 15:51:07 +0900 Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp> wrote: > > > > > >but I wonder why all those things are u64. They all hold virtual > > > >addresses, don't they? The code doesn't test highmem. So shouldn't > > > >these all be unsigned longs? > > > memtest() in linux-2.6.29.4/arch/x86/mm/memtest.c is using "unsigned long". > > > 2.6.30 changed to use "u64" by some reason. > > > > No reason, really. "consistency". > > Yes, it was done that way for consistency. > See this thread > http://lkml.org/lkml/2009/2/13/166 > > > It made the code slower, > > not measurable > > > larger > > slightly on 32-bit > > > and, err, not compile. > > Mea culpa. > > Overlooked the 64-bit division. > Did test this with 4.[23].x compilers on 32-bit which didn't complain ... > > I assume you are going to send your do_div() fix upstream? >
I deleted it, for it is lame.
A better fix is to use the correct types.
| |