CONFIG_CMDLINE can not work on ppc.
machine_init() copies the string to cmd_line, then platform_init() is
called. It truncates the string to length zero.
--- ./arch/ppc/kernel/setup.c.kaputt 2004-09-08 14:23:36.000000000 +0200
+++ ./arch/ppc/kernel/setup.c 2004-09-08 15:30:42.000000000 +0200
@@ -418,7 +418,9 @@ platform_init(unsigned long r3, unsigned
* are used for initrd_start and initrd_size,
* otherwise they contain 0xdeadbeef.
*/
+#if 0
cmd_line[0] = 0;
+#endif
if (r3 >= 0x4000 && r3 < 0x800000 && r4 == 0) {
strlcpy(cmd_line, (char *)r3 + KERNELBASE,
sizeof(cmd_line));
--
USB is for mice, FireWire is for men!
sUse lINUX ag, nÜRNBERG
On Wed, Sep 08, 2004 at 03:40:28PM +0200, Olaf Hering wrote:
> CONFIG_CMDLINE can not work on ppc.
> machine_init() copies the string to cmd_line, then platform_init() is
> called. It truncates the string to length zero.
This has come up before, actually. What happens if CMDLINE isn't set,
and we don't terminate cmd_line here? It's part of the BSS and is
zero'd out anyways?
--
Tom Rini
http://gate.crashing.org/~trini/
On Wed, Sep 08, Tom Rini wrote:
> On Wed, Sep 08, 2004 at 03:40:28PM +0200, Olaf Hering wrote:
>
> > CONFIG_CMDLINE can not work on ppc.
> > machine_init() copies the string to cmd_line, then platform_init() is
> > called. It truncates the string to length zero.
>
> This has come up before, actually. What happens if CMDLINE isn't set,
> and we don't terminate cmd_line here? It's part of the BSS and is
> zero'd out anyways?
strlcpy generates a null-terminated string, if size != 0. Looks like
that line can go. Or move it at the start of machine_init().
--
USB is for mice, FireWire is for men!
sUse lINUX ag, nÜRNBERG
On Wed, Sep 08, 2004 at 04:03:23PM +0200, Olaf Hering wrote:
> On Wed, Sep 08, Tom Rini wrote:
>
> > On Wed, Sep 08, 2004 at 03:40:28PM +0200, Olaf Hering wrote:
> >
> > > CONFIG_CMDLINE can not work on ppc.
> > > machine_init() copies the string to cmd_line, then platform_init() is
> > > called. It truncates the string to length zero.
> >
> > This has come up before, actually. What happens if CMDLINE isn't set,
> > and we don't terminate cmd_line here? It's part of the BSS and is
> > zero'd out anyways?
>
> strlcpy generates a null-terminated string, if size != 0. Looks like
> that line can go.
... but strlcpy might not be called if no one passes a commandline.
Hence, is this part of the bss and already zeroed ? If yes, then just
remove the line.
> Or move it at the start of machine_init().
Or always define CMDLINE, ala the ADVANCED_OPTIONS || defaults, no #if's
that way :)
--
Tom Rini
http://gate.crashing.org/~trini/
Tom Rini <[email protected]> writes:
> This has come up before, actually. What happens if CMDLINE isn't set,
> and we don't terminate cmd_line here? It's part of the BSS and is
> zero'd out anyways?
If BSS is not cleared that would be a bug.
Andreas.
--
Andreas Schwab, SuSE Labs, [email protected]
SuSE Linux AG, Maxfeldstra?e 5, 90409 N?rnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."