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

Re: [Xen-devel] [Xen-staging] [xen staging] ARM: parse separate DT properties for different commandlines



On Mon, 2013-10-07 at 13:23 +0100, Julien Grall wrote:
> On 10/01/2013 11:12 AM, Ian Campbell wrote:
> > On Tue, 2013-10-01 at 10:56 +0100, Ian Campbell wrote:
> >> On Thu, 2013-09-19 at 10:44 +0100, Julien Grall wrote:
> >>>
> >>> On 19 Sep 2013 09:29, "Andre Przywara" <andre.przywara@xxxxxxxxxx>
> >>> wrote:
> >>>>>
> >>>>>> @@ -261,7 +261,12 @@ const char *device_tree_bootargs(const void
> >>> *fdt)
> >>>>>>       if ( node < 0 )
> >>>>>>           return NULL;
> >>>>>>
> >>>>>> -    prop = fdt_get_property(fdt, node, "bootargs", NULL);
> >>>>>> +    prop = fdt_get_property(fdt, node, "xen,xen-bootargs", NULL);
> >>>>>> +    if ( prop == NULL )
> >>>>>> +    {
> >>>>>> +        if (fdt_get_property(fdt, node, "xen,dom0-bootargs",
> >>> NULL))
> >>>>>> +            prop = fdt_get_property(fdt, node, "bootargs", NULL);
> >>>>>> +    }
> >>>
> >>> The logic seems wrong here, we returns bootargs only if the property
> >>> "xen,dom0-bootargs" exists. We should also check if the user give the
> >>> dom0
> >>> command line via the multiboot module.
> >>
> >> Anyone investigating this? I've just been using the following, which is
> >> obviously bogus!
> > 
> > How about this:
> > 8<------------------------------------
> > 
> > From a158dee49bb59e76c0f9103f512bb4bf9489f770 Mon Sep 17 00:00:00 2001
> > From: Ian Campbell <ijc@xxxxxxxxxxxxxx>
> > Date: Fri, 20 Sep 2013 23:45:34 +0100
> > Subject: [PATCH] xen: arm: fix usage of bootargs for Xen.
> > 
> > The chosen node's bootargs property should be used for Xen if there is a 
> > dom0
> > kernel multiboot module with a command line, not just if xen,dom0-bootargs 
> > is
> > present.
> 
> From docs/misc/arm/device-tree/booting.txt:
> If no Xen specific properties are present, bootargs is for Dom0.
> 
> The current behaviour seems logic. Can you update the documentation?

You mean the patch is good but the docs need updating? Sure.

> 
> > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> > ---
> >  xen/common/device_tree.c |   10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/xen/common/device_tree.c b/xen/common/device_tree.c
> > index 27ee708..fe25508 100644
> > --- a/xen/common/device_tree.c
> > +++ b/xen/common/device_tree.c
> > @@ -242,7 +242,7 @@ static int __init device_tree_for_each_node(const void 
> > *fdt,
> >   */
> >  const char *device_tree_bootargs(const void *fdt)
> >  {
> > -    int node; 
> > +    int node;
> >      const struct fdt_property *prop;
> >  
> >      node = fdt_path_offset(fdt, "/chosen");
> > @@ -252,7 +252,13 @@ const char *device_tree_bootargs(const void *fdt)
> >      prop = fdt_get_property(fdt, node, "xen,xen-bootargs", NULL);
> >      if ( prop == NULL )
> >      {
> > -        if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL))
> > +        struct dt_mb_module *dom0_mod = NULL;
> > +
> > +        if ( early_info.modules.nr_mods >= MOD_KERNEL )
> > +            dom0_mod = &early_info.modules.module[MOD_KERNEL];
> > +
> > +        if (fdt_get_property(fdt, node, "xen,dom0-bootargs", NULL) ||
> > +            ( dom0_mod && dom0_mod->cmdline[0] ) )
> >              prop = fdt_get_property(fdt, node, "bootargs", NULL);
> >      }
> >      if ( prop == NULL )
> > 
> 
> 



_______________________________________________
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®.