[PATCH] powerpc: Remove more traces of bootmem

Michael Ellerman mpe at ellerman.id.au
Wed Nov 19 18:57:37 AEDT 2014


On Wed, 2014-11-19 at 16:29 +1100, Michael Ellerman wrote:
> On Tue, 2014-11-18 at 10:26 +0000, David Laight wrote:
> > From: Michael Ellerman
> > > Although we are now selecting NO_BOOTMEM, we still have some traces of
> > > bootmem lying around. That is because even with NO_BOOTMEM there is
> > > still a shim that converts bootmem calls into memblock calls, but
> > > ultimately we want to remove all traces of bootmem.
> > > 
> > > Most of the patch is conversions from alloc_bootmem() to
> > > memblock_alloc(). In general a call such as:
> > > 
> > >   p = (struct foo *)alloc_bootmem(x);
> > > 
> > > Becomes:
> > > 
> > >   p = __va(memblock_alloc(x, 0));
> > > 
> > > We need __va() because memblock returns a physical address. We don't
> > > need the cast because __va() returns a void *. The alignment value of
> > > zero tells memblock to use the default alignment, which is
> > > SMP_CACHE_BYTES, the same value alloc_bootmem() uses.
> > 
> > It doesn't seem right to me to replicate __va(memblock_alloc(x, 0))
> > that many times. I can imagine that the required code will change
> > again at to future time, and then all the same places would need changing.

After more grovelling through header files it turns out there is a wrapper that
does what we want - I think.

It's memblock_virt_alloc() (name reversed), and it's in bootmem.h, which is why
I didn't find it originally.

I'll try that instead.

cheers




More information about the Linuxppc-dev mailing list