Re: [patch 03/26] Dynamic kernel command-line - arm

Russell King
2007-01-22T20:01:09Z

On Mon, Jan 22, 2007 at 11:56:50AM -0800, Andrew Morton wrote:
> > On Thu, 18 Jan 2007 15:23:26 +0000 Russell King <rmk+lkml@arm.linux.org.uk> wrote:
> > On Thu, Jan 18, 2007 at 04:31:51PM +0100, Tomas Carnecky wrote:
> > > Russell King wrote:
> > > > On Thu, Jan 18, 2007 at 01:58:52PM +0100, Bernhard Walle wrote:
> > > >> -static char command_line[COMMAND_LINE_SIZE];
> > > >> +static char __initdata command_line[COMMAND_LINE_SIZE];
> > > >
> > > > Uninitialised data is placed in the BSS. Adding __initdata to BSS
> > > > data causes grief.
> > > >
> > >
> > > Static variables are implicitly initialized to zero. Does that also
> > > count as initialization?
> >
> > No. As I say, they're placed in the BSS. The BSS is zeroed as part of
> > the C runtime initialisation.
>
> I don't understand the objection. With the above change, command_line[]
> will end up consuming COMMAND_LINE_SIZE bytes of .data.init and will be
> reliably initialized to all-zeros by the compiler (won't it?)

You're reading into this something that was never there. The mail you
are replying to is an explanatory one, not an objecting one.

My "objection" (if you want to call it that, it was more an observation)
was that merely adding an __initdata to an uninitialised variable has in
the past caused complaints from compilers about section mismatches and
the like.

Maybe compilers are now smarter though.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/