diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index e17532c132..63a908e325 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -71,8 +71,6 @@ domid_t __read_mostly max_init_domid; static __used void init_done(void) { - discard_initial_modules(); - /* Must be done past setting system_state. */ unregister_init_virtual_region(); @@ -999,6 +997,12 @@ void __init start_xen(unsigned long boot_phys_offset, if ( acpi_disabled ) create_domUs(); + /* + * This needs to be called **before** heap_init_late() so modules + * will be scrubbed (unless suppressed). + */ + discard_initial_modules(); + heap_init_late(); init_trace_bufs();