void __init discard_initial_modules(void) { struct dt_module_info *mi = &early_info.modules; int i; for ( i = MOD_DISCARD_FIRST; i <= mi->nr_mods; i++ ) { paddr_t s = mi->module[i].start; paddr_t e = s + PAGE_ALIGN(mi->module[i].size); dt_unreserved_regions(s, e, init_domheap_pages, 0); } mi->nr_mods = 0; remove_early_mappings(); }
void __init discard_initial_modules(void) { struct bootmodules *mi = &bootinfo.modules; int i; for ( i = 0; i < mi->nr_mods; i++ ) { paddr_t s = mi->module[i].start; paddr_t e = s + PAGE_ALIGN(mi->module[i].size); if ( mi->module[i].kind == BOOTMOD_XEN ) continue; if ( !mfn_valid(paddr_to_pfn(s)) || !mfn_valid(paddr_to_pfn(e))) continue; dt_unreserved_regions(s, e, init_domheap_pages, 0); } mi->nr_mods = 0; remove_early_mappings(); }