[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH for-4.6] libxl: use correct command line for arm guests.



On Thu, Aug 06, 2015 at 11:55:57AM +0100, Ian Campbell wrote:
> We need to use libxl__domain_build_state.pv_cmdline in order to pickup
> the correct args when using pygrub. libxl_domain_build_info.cmdline is
> any args statically configured by the user.
> 
> This is consistent with the call to xc_domain_allocate, which takes
> the cmdline too (in that case for x86/PV usage).
> 
> state->pv_cmdline is also set for non-pygrub guests, since
> libxl_bootloader_run propagates info->cmdline if no bootloader is

libxl__bootloader_run

> condfigured.
> 
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>

> ---
> For 4.6: This makes pygrub work on ARM.
> 

It's very low risk. Apply as you see fit.

> Should also be backported.
> ---
>  tools/libxl/libxl_arm.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/libxl/libxl_arm.c b/tools/libxl/libxl_arm.c
> index 42ab6d8..a310737 100644
> --- a/tools/libxl/libxl_arm.c
> +++ b/tools/libxl/libxl_arm.c
> @@ -260,6 +260,7 @@ static int make_root_properties(libxl__gc *gc,
>  }
>  
>  static int make_chosen_node(libxl__gc *gc, void *fdt, bool ramdisk,
> +                            libxl__domain_build_state *state,
>                              const libxl_domain_build_info *info)
>  {
>      int res;
> @@ -268,8 +269,9 @@ static int make_chosen_node(libxl__gc *gc, void *fdt, 
> bool ramdisk,
>      res = fdt_begin_node(fdt, "chosen");
>      if (res) return res;
>  
> -    if (info->cmdline) {
> -        res = fdt_property_string(fdt, "bootargs", info->cmdline);
> +    if (state->pv_cmdline) {
> +        LOG(DEBUG, "/chosen/bootargs = %s", state->pv_cmdline);
> +        res = fdt_property_string(fdt, "bootargs", state->pv_cmdline);
>          if (res) return res;
>      }
>  
> @@ -831,7 +833,7 @@ next_resize:
>          FDT( fdt_begin_node(fdt, "") );
>  
>          FDT( make_root_properties(gc, vers, fdt) );
> -        FDT( make_chosen_node(gc, fdt, !!dom->ramdisk_blob, info) );
> +        FDT( make_chosen_node(gc, fdt, !!dom->ramdisk_blob, state, info) );
>          FDT( make_cpus_node(gc, fdt, info->max_vcpus, ainfo) );
>          FDT( make_psci_node(gc, fdt) );
>  
> -- 
> 2.1.4

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.