On Sun, 25 Apr 2021, Julien Grall wrote: > From: Julien Grall > > Now that map_pages_to_xen() has been extended to support 2MB mappings, > we can replace the create_mappings() call by map_pages_to_xen() call. > > Signed-off-by: Julien Grall > > --- > Changes in v2: > - New patch > > TODOs: > - add support for contiguous mapping > --- > xen/arch/arm/mm.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c > index 5c17cafff847..19ecf73542ce 100644 > --- a/xen/arch/arm/mm.c > +++ b/xen/arch/arm/mm.c > @@ -806,7 +806,12 @@ void mmu_init_secondary_cpu(void) > void __init setup_xenheap_mappings(unsigned long base_mfn, > unsigned long nr_mfns) > { > - create_mappings(xen_second, XENHEAP_VIRT_START, base_mfn, nr_mfns, MB(32)); > + int rc; > + > + rc = map_pages_to_xen(XENHEAP_VIRT_START, base_mfn, nr_mfns, > + PAGE_HYPERVISOR_RW | _PAGE_BLOCK); > + if ( rc ) > + panic("Unable to setup the xenheap mappings.\n"); > > /* Record where the xenheap is, for translation routines. */ > xenheap_virt_end = XENHEAP_VIRT_START + nr_mfns * PAGE_SIZE; I get the following build error: mm.c: In function ‘setup_xenheap_mappings’: mm.c:811:47: error: incompatible type for argument 2 of ‘map_pages_to_xen’ rc = map_pages_to_xen(XENHEAP_VIRT_START, base_mfn, nr_mfns, ^~~~~~~~ In file included from mm.c:24:0: /local/repos/xen-upstream/xen/include/xen/mm.h:89:5: note: expected ‘mfn_t {aka struct }’ but argument is of type ‘long unsigned int’ int map_pages_to_xen( ^~~~~~~~~~~~~~~~ I think base_mfn needs to be converted to mfn_t