|
[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 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.
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 )
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |