[PATCH v2] Fix handling of memreserve if the range lands in highmem

Paul Mackerras paulus at samba.org
Thu Jan 24 10:04:18 EST 2008


Kumar Gala writes:

> There were several issues if a memreserve range existed and happened
> to be in highmem:
> 
> * The bootmem allocator is only aware of lowmem so calling
>   reserve_bootmem with a highmem address would cause a BUG_ON
> * All highmem pages were provided to the buddy allocator
> 
> Added a lmb_is_reserved() api that we now use to determine if a highem
> page should continue to be PageReserved or provided to the buddy
> allocator.
> 
> Also, we incorrectly reported the amount of pages reserved since all
> highmem pages are initally marked reserved and we clear the
> PageReserved flag as we "free" up the highmem pages.

This patch breaks all the 64-bit configs since 64-bit doesn't have
total_lowmem.  The extra complexity is only needed in the
CONFIG_HIGHMEM case, so an ifdef would be one solution, though an ugly
one.  We do already have an ifdef just above the place you changed in
arch/powerpc/mm/mem.c which you could just enlarge rather than adding
a new ifdef.

And clearly I can't pull your tree until this is sorted somehow...

Paul.



More information about the Linuxppc-dev mailing list