[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/pvh: pass module command line to dom0
On 29.01.2021 10:05, Roger Pau Monne wrote: > Both the multiboot and the HVM start info structures allow passing a > string together with a module. Implement the missing support in > pvh_load_kernel so that module strings found in the multiboot > structure are forwarded to dom0. > > Fixes: 62ba982424 ('x86: parse Dom0 kernel for PVHv2') This really is relevant only when it's not an initrd which gets passed as module, I suppose? I'm not fully convinced I'd call this a bug then, but perhaps more a missing feature. Which in turn means I'm not sure about the change's disposition wrt 4.15. Cc-ing Ian. > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Acked-by: Jan Beulich <jbeulich@xxxxxxxx> Albeit ... > --- a/xen/arch/x86/hvm/dom0_build.c > +++ b/xen/arch/x86/hvm/dom0_build.c > @@ -617,7 +617,21 @@ static int __init pvh_load_kernel(struct domain *d, > const module_t *image, > > mod.paddr = last_addr; > mod.size = initrd->mod_end; > - last_addr += ROUNDUP(initrd->mod_end, PAGE_SIZE); > + last_addr += ROUNDUP(initrd->mod_end, elf_64bit(&elf) ? 8 : 4); > + if ( initrd->string ) > + { > + char *str = __va(initrd->string); > + > + rc = hvm_copy_to_guest_phys(last_addr, str, strlen(str) + 1, v); > + if ( rc ) > + { > + printk("Unable to copy module command line\n"); > + return rc; > + } > + mod.cmdline_paddr = last_addr; > + last_addr += strlen(str) + 1; ... it would have been nice if this length was calculated just once, into a local variable. I'd be fine making the adjustment while committing, so long as you agree. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |