[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