|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.13 v2] xen/arm32: setup: Give a xenheap page to the boot allocator
On Fri, 20 Sep 2019, Julien Grall wrote:
> After commit 6e3e771203 "xen/arm: setup: Relocate the Device-Tree later on
> in the boot", the boot allocator will not receive any xenheap page (i.e.
> mapped page) on Arm32.
>
> However, the boot allocator implicitely rely on having the first page
"implicitly relies"
I fixed the commit message and committed.
Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> already mapped and therefore result to break boot on Arm32.
>
> The easiest way for now is to give a xenheap page to the boot allocator.
> We may want to rethink the interface in the future.
>
> Fixes: 6e3e771203 ('xen/arm: setup: Relocate the Device-Tree later on in the
> boot')
> Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> Changes in v2:
> - Add Jan's reviewed-by
> - Use boot_mfn_start rather than boot_mfn_end when giving
> xenheap pages.
> ---
> xen/arch/arm/setup.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 581b262655..fca7e68cba 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -593,6 +593,7 @@ static void __init setup_mm(void)
> unsigned long heap_pages, xenheap_pages, domheap_pages;
> int i;
> const uint32_t ctr = READ_CP32(CTR);
> + mfn_t boot_mfn_start, boot_mfn_end;
>
> if ( !bootinfo.mem.nr_banks )
> panic("No memory bank\n");
> @@ -665,6 +666,11 @@ static void __init setup_mm(void)
>
> setup_xenheap_mappings((e >> PAGE_SHIFT) - xenheap_pages, xenheap_pages);
>
> + /* We need a single mapped page for populating bootmem_region_list. */
> + boot_mfn_start = mfn_add(xenheap_mfn_end, -1);
> + boot_mfn_end = xenheap_mfn_end;
> + init_boot_pages(mfn_to_maddr(boot_mfn_start),
> mfn_to_maddr(boot_mfn_end));
> +
> /* Add non-xenheap memory */
> for ( i = 0; i < bootinfo.mem.nr_banks; i++ )
> {
> @@ -710,7 +716,7 @@ static void __init setup_mm(void)
>
> /* Add xenheap memory that was not already added to the boot allocator.
> */
> init_xenheap_pages(mfn_to_maddr(xenheap_mfn_start),
> - mfn_to_maddr(xenheap_mfn_end));
> + mfn_to_maddr(boot_mfn_start));
> }
> #else /* CONFIG_ARM_64 */
> static void __init setup_mm(void)
> --
> 2.11.0
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |