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: <http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=blob;f=arch/arm/Kconfig;h=24626b0419ee97e963e68329a8eb6769360b46ea;hb=HEAD#l1984> Which case do you have CONFIG_CMDLINE defined but not CMDLINE_FORCE? In those cases, do you happen to have CONFIG_CMDLINE_EXTEND or CMDLINE_FROM_BOOTLOADER defined? Thanks much! -Doug --- On Mon, Sep 19, 2011 at 9:55 PM, Grant Likely <grant.lik...@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 <b...@kernel.crashing.org> > > CC: devicetree-disc...@lists-ozlabs.org > > CC: Grant Likely <grant.lik...@secretlab.ca> > > Looks okay to me. > > Acked-by: Grant Likely <grant.lik...@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[0]) > > #endif > > strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE); > > #endif /* CONFIG_CMDLINE */ > > -- > > 1.7.4.1 > > > > > > > > > _______________________________________________ > devicetree-discuss mailing list > devicetree-disc...@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/devicetree-discuss _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev