cmd_line and cmd_preset in arch/ppc/boot/simple/misc.c

Leigh Brown leigh at solinno.co.uk
Fri Jan 28 02:40:04 EST 2005


Rob Baxter said:
> On Wed, Jan 26, 2005 at 06:55:13PM -0000, Leigh Brown wrote:
>> Could someone please confirm that I'm not going mad?  At least wrt
>> this ;-)  We have this code in misc.c:
>>
>> #ifdef CONFIG_GEMINI
>>         /*
>>          * If cmd_line is empty and cmd_preset is not, copy cmd_preset
>>          * to cmd_line.  This way we can override cmd_preset with the
>>          * command line from Smon.
>>          */
>>
>>         if ( (cmd_line[0] == '\0') && (cmd_preset[0] != '\0'))
>>                 memcpy (cmd_line, cmd_preset, sizeof(cmd_preset));
>> #endif
>>
>>         /* Display standard Linux/PPC boot prompt for kernel args */
>>         puts("\nLinux/PPC load: ");
>>         cp = cmd_line;
>>         memcpy (cmd_line, cmd_preset, sizeof(cmd_preset));
>>
>>
>> Surely the bit in the #ifdef is ineffective?  Also, as cmd_line is
>> initialised to zeros, I think this is better:
>>
>>         /*
>>          * If cmd_line is empty and cmd_preset is not, copy cmd_preset
>>          * to cmd_line.  This way we can override cmd_preset with the
>>          * command line from Smon.
>>          */
>>
>>         if ( (cmd_line[0] == '\0') && (cmd_preset[0] != '\0'))
>>                 memcpy (cmd_line, cmd_preset, sizeof(cmd_preset));
>>
>>         /* Display standard Linux/PPC boot prompt for kernel args */
>>         puts("\nLinux/PPC load: ");
>>         cp = cmd_line;
>>
>> As, in the general case, cmd_line[0] will always be zero and
>> cmd_preset[0] will always be filled, so no need for an #ifdef.
>>
>> If someone can confirm I'm not mistaken, I can send a patch...
>
> No, you're not going mad...
>
> This piece code, CONFIG_GEMINI, complements a piece code in the GEMINI
> specific boot code.  This piece of code is not part of the standard
> distribution.  What this compliment piece of code did was to pass an
> optional command line from the firmware to misc.c.

Hi Rob, thanks for the answer.  It was more the suggestion that the
code doesn't work: the bit in the #ifdef doesn't achieve anything
because just a few lines below it will *always* overwrite the
contents of cmd_line with the contents of cmd_preset...

Cheers,

Leigh.




More information about the Linuxppc-dev mailing list