[PATCH] [v3] powerpc/4xx: work around CHIP11 errata in a more PAGE_SIZE-friendly way
Michael Ellerman
michael at ellerman.id.au
Wed Nov 26 10:43:51 EST 2008
On Tue, 2008-11-25 at 15:53 -0600, Hollis Blanchard wrote:
> On Tue, 2008-11-25 at 11:10 +1100, Michael Ellerman wrote:
> >
> > Still, I think it would be better to only set memory_limit when the mem
> > size is not a multiple of the PAGE_SIZE - so that memory_limit retains
> > it's function as both the value of the limit and a boolean.
>
> OK, how's this?
>
> ppc: force memory size to be a multiple of PAGE_SIZE
>
> Ensure that total memory size is page-aligned, because otherwise
> mark_bootmem() gets upset.
>
> This error case was triggered by using 64 KiB pages in the kernel while
> arch/powerpc/boot/4xx.c arbitrarily reduced the amount of memory by 4096 (to
> work around a chip bug that affects the last 256 bytes of physical memory).
>
> Signed-off-by: Hollis Blanchard <hollisb at us.ibm.com>
>
> diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
> --- a/arch/powerpc/kernel/prom.c
> +++ b/arch/powerpc/kernel/prom.c
> @@ -1160,6 +1160,8 @@ static inline void __init phyp_dump_rese
>
> void __init early_init_devtree(void *params)
> {
> + unsigned long limit, memsize;
> +
> DBG(" -> early_init_devtree(%p)\n", params);
>
> /* Setup flat device-tree pointer */
> @@ -1200,7 +1202,15 @@ void __init early_init_devtree(void *par
> early_reserve_mem();
> phyp_dump_reserve_mem();
I was thinking more like the following:
>
> - lmb_enforce_memory_limit(memory_limit);
> + limit = memory_limit;
> + if (! limit) {
> + /* Ensure that total memory size is page-aligned, because
> + * otherwise mark_bootmem() gets upset. */
> + lmb_analyze();
memsize = lmb_phys_mem_size();
if(memsize & PAGE_MASK != memsize)
limit = memsize & PAGE_MASK;
> + }
> + lmb_enforce_memory_limit(limit);
> +
So that we never needlessly run through the enforce code with limit =
memsize. But maybe it's a bit pedantic.
cheers
--
Michael Ellerman
OzLabs, IBM Australia Development Lab
wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)
We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20081126/fd5dedf2/attachment.pgp>
More information about the Linuxppc-dev
mailing list