[PATCH v2] of: Change logic to overwrite cmd_line with CONFIG_CMDLINE
dianders at chromium.org
Sat Jan 7 11:48:14 EST 2012
I know this is a long-dead thread, but I was a little curious about
the motivation here.
I'm looking at trying to support CONFIG_CMDLINE_EXTEND (an ARM
Kconfig) in this function and don't know in which cases I should look
at the CONFIG_CMDLINE and in which cases I should use whatever
happened to be in data before the function was called.
Here's the definition in the KConfig:
Which case do you have CONFIG_CMDLINE defined but not CMDLINE_FORCE?
In those cases, do you happen to have CONFIG_CMDLINE_EXTEND or
On Mon, Sep 19, 2011 at 9:55 PM, Grant Likely <grant.likely at secretlab.ca> wrote:
> On Tue, Sep 20, 2011 at 02:50:15PM +1000, Benjamin Herrenschmidt wrote:
> > We used to overwrite with CONFIG_CMDLINE if we found a chosen
> > node but failed to get bootargs out of it or they were empty,
> > unless CONFIG_CMDLINE_FORCE is set.
> > Instead change that to overwrite if "data" is non empty after
> > the bootargs check. It allows arch code to have other mechanisms
> > to retrieve the command line prior to parsing the device-tree.
> > Note: CONFIG_CMDLINE_FORCE case should ideally be handled elsewhere
> > as it won't work as it-is if the device-tree has no /chosen node
> > Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> > CC: devicetree-discuss at lists-ozlabs.org
> > CC: Grant Likely <grant.likely at secretlab.ca>
> Looks okay to me.
> Acked-by: Grant Likely <grant.likely at secretlab.ca>
> > ---
> > drivers/of/fdt.c | 7 ++++++-
> > 1 files changed, 6 insertions(+), 1 deletions(-)
> > v2. Use "data" instead of "cmd_line" so it works on archs like
> > mips who don't pass cmd_line to that function to start with, also
> > add a comment explaining the mechanism.
> > (resent with right list address as well while at it)
> > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> > index 65200af..323b722 100644
> > --- a/drivers/of/fdt.c
> > +++ b/drivers/of/fdt.c
> > @@ -681,9 +681,14 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
> > if (p != NULL && l > 0)
> > strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
> > + /*
> > + * CONFIG_CMDLINE is meant to be a default in case nothing else
> > + * managed to set the command line, unless CONFIG_CMDLINE_FORCE
> > + * is set in which case we override whatever was found earlier.
> > + */
> > #ifdef CONFIG_CMDLINE
> > #ifndef CONFIG_CMDLINE_FORCE
> > - if (p == NULL || l == 0 || (l == 1 && (*p) == 0))
> > + if (!data)
> > #endif
> > strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
> > #endif /* CONFIG_CMDLINE */
> > --
> > 126.96.36.199
> devicetree-discuss mailing list
> devicetree-discuss at lists.ozlabs.org
More information about the Linuxppc-dev