* Andrew Morton <akpm@linux-foundation.org> wrote:
In this case it's not that bad. It makes the source quite a bit cleaner
and avoids having to create artificial interfaces, global functions,
etc. between the .o's.
yeah indeed - fixed.
no! 0xfffffff0 / 2 is 0x7fffffff when the division is unsigned, and
7ffffff8 (== -8) when signed. On x86 the silicon only offers us unsigned
64-bit division, so we first have to make '+16' out of -16, then divide
by 2, and turn the +4 into -4. (On x86_64 there's no such problem,
there's an idiv and a div 64-bit instruction as well, and gcc picks the
right one depending on the type of the variable.)
i think Roman has recently done a nice cleanup patch that introduces
this? I'll change CFS to use that interface once it's upstream.
Ingo
-