[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 07/10] xen: arm: store per-boot module type instead of relying on index
Hi Ian, On 06/16/2014 12:45 PM, Ian Campbell wrote: > This is more natural and better matches how multiboot is actually supposed to > work. > > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > --- > xen/arch/arm/bootfdt.c | 49 > +++++++++++++++---------------------------- > xen/arch/arm/domain_build.c | 20 +++++++++++------- > xen/arch/arm/kernel.c | 15 ++++++------- > xen/arch/arm/setup.c | 47 ++++++++++++++++++++++++++++++++++++----- > xen/include/asm-arm/setup.h | 29 +++++++++++++++++-------- > 5 files changed, 100 insertions(+), 60 deletions(-) It looks like you forgot to modify xsm/xsm_policy.c. > +void add_boot_module(bootmodulekind kind, paddr_t start, paddr_t size, > + const char *cmdline) > +{ > + struct bootmodules *mods = &bootinfo.modules; > + struct bootmodule *mod; > + > + if ( mods->nr_mods == MAX_MODULES ) > + { > + printk("Ignoring boot module at %"PRIpaddr"-%"PRIpaddr" (too > many)\n", > + start, start + size); > + return; > + } As we don't have any way to know if the user add multiple the kernel and/or the initramfs, I would add a print message here to say what kind of boot module we are currently adding. It will help the guy to find the problem quickly. [..] > void __init discard_initial_modules(void) > { > struct bootmodules *mi = &bootinfo.modules; > int i; > > - for ( i = MOD_DISCARD_FIRST; i <= mi->nr_mods; 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); > > - dt_unreserved_regions(s, e, init_domheap_pages, 0); > + if ( mi->module[i].kind > BOOTMOD_LAST_PRESERVE ) > + dt_unreserved_regions(s, e, init_domheap_pages, 0); > } [..] > +typedef enum { > + BOOTMOD_XEN, > + BOOTMOD_FDT, > + /* Everything up to here is not freed after start of day */ > + BOOTMOD_LAST_PRESERVE = BOOTMOD_FDT, Currently we also discard the FDT, this is because the FDT is copied another place in the memory. With this patch the FDT module stays in memory. I think BOOTMOD_LAST_PRESERVE should be equal to BOOTMOD_XEN. > + BOOTMOD_KERNEL, > + BOOTMOD_RAMDISK, > + BOOTMOD_XSM, > + BOOTMOD_UNKNOWN > +} bootmodulekind; I would rename to bootmodule_kind. It's easier to read and you know that the enum is used for a bootmodule. Regards, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |