Re: [PATCH 15/35] x86: make 64 bit use early_res instead of bootmembefore slab

From: Andrew Morton
Date: Tue Feb 09 2010 - 17:33:56 EST


On Tue, 09 Feb 2010 13:37:04 -0800
Yinghai Lu <yinghai@xxxxxxxxxx> wrote:

> On 02/09/2010 12:26 PM, Andrew Morton wrote:
> > On Tue, 09 Feb 2010 11:32:26 -0800
> > Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
> >
> >> +u64 __init find_early_area(u64 ei_start, u64 ei_last, u64 start, u64 end,
> >> + u64 size, u64 align)
> >> +{
> >> + u64 addr, last;
> >> +
> >> + addr = round_up(ei_start, align);
> >
> > Can we use include/linux/log2.h:roundup_pow_of_two() in this patchset?
>
> no, that is not what we want.
>
>
> /**
> * roundup_pow_of_two - round the given value up to nearest power of two
> * @n - parameter
> *
> * round the given value up to the nearest power of two
> * - the result is undefined when n == 0
> * - this can be used to initialise global variables from constant data
> */
> #define roundup_pow_of_two(n) \
> ( \
> __builtin_constant_p(n) ? ( \
> (n == 1) ? 1 : \
> (1UL << (ilog2((n) - 1) + 1)) \
> ) : \
> __roundup_pow_of_two(n) \
> )
>

err, crap, yeah.

It would be nice to fix all this up, and get the private round_up()
stuff out of x86 and into kernel.h.

The present naming scheme is ghastly:

ALIGN
DIV_ROUND_UP
roundup
round_up
round_down

Where round_up and ALIGN are kinda maybe the same.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/