[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 |