Re: [PATCH 00/34] __initdata cleanup

Andrew Morton
2007-02-09T22:11:47Z

On Fri, 9 Feb 2007 23:48:36 +0200
"Alon Bar-Lev" <alon.barlev@gmail.com> wrote:

> On 2/9/07, Andrew Morton <akpm@linux-foundation.org> wrote:
> > If we really do have a problem here it'd be better to fix it in some
> > central and global fashion: either by ensuring that each architecture's
> > startup code will zero this memory or by some compiler/linker option such
> > as -fno-common.
>
> Great,
> But what about the variables that are not in global scope?
> As I understand from init.h description:
> "Don't forget to initialize data not at file scope, i.e. within a function,
> as gcc otherwise puts the data into the bss section and not into the init
> section."
>

It could be that this is referring to a toolchain which we don't use any
more. That comment has been there for at least seven years.

This:

--- a/fs/open.c~a
+++ a/fs/open.c
@@ -223,6 +223,8 @@ static long do_sys_truncate(const char _
struct inode * inode;
int error;

+ static char blobwozzle[100] __initdata;
+
error = -EINVAL;
if (length < 0) /* sorry, but loff_t says... */
goto out;
_

puts the array in .init.data on my fairly old toolchain.