2020-10-14 18:05:12

by Serge Semin

[permalink] [raw]
Subject: Re: [PATCH] MIPS: DEC: Restore bootmem reservation for firmware working memory area

Hello Maciej,

On Wed, Oct 14, 2020 at 12:10:09PM +0100, Maciej W. Rozycki wrote:
> Fix a crash on DEC platforms starting with:
>

...

> @@ -146,6 +150,9 @@ void __init plat_mem_setup(void)
>
> ioport_resource.start = ~0UL;
> ioport_resource.end = 0UL;
> +
> + /* Stay away from the firmware working memory area for now. */

> + memblock_reserve(PHYS_OFFSET, __pa_symbol(&_text));

Shouldn't that be:
+ memblock_reserve(PHYS_OFFSET, __pa_symbol(&_text) - PHYS_OFFSET);
instead?

-Sergey

> }
>
> /*
>


2020-10-15 02:12:21

by Maciej W. Rozycki

[permalink] [raw]
Subject: Re: [PATCH] MIPS: DEC: Restore bootmem reservation for firmware working memory area

Hello Serge,

> > @@ -146,6 +150,9 @@ void __init plat_mem_setup(void)
> >
> > ioport_resource.start = ~0UL;
> > ioport_resource.end = 0UL;
> > +
> > + /* Stay away from the firmware working memory area for now. */
>
> > + memblock_reserve(PHYS_OFFSET, __pa_symbol(&_text));
>
> Shouldn't that be:
> + memblock_reserve(PHYS_OFFSET, __pa_symbol(&_text) - PHYS_OFFSET);
> instead?

Good point: unlike `free_init_pages' which uses start/end this function
uses start/size as its arguments. For DEC effectively it does not matter
as PHYS_OFFSET is 0 anyway, but code has to be semantically correct.
I'll post an update.

Maciej