Re: const __initdata?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 30 Nov 2007 12:08:46 -0500 (EST) Robert P. J. Day wrote:

> On Thu, 29 Nov 2007, Randy Dunlap wrote:
> 
> > On Thu, 29 Nov 2007 02:28:43 -0500 (EST) Robert P. J. Day wrote:
> >
> > >
> > >   from include/linux/init.h:
> > >
> > >  * For initialized data:
> > >  * You should insert __initdata between the variable name and equal
> > >  * sign followed by value, e.g.:
> > >  *
> > >  * static int init_variable __initdata = 0;
> > >  * static char linux_logo[] __initdata = { 0x32, 0x36, ... };
> > >  *
> > >  * 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.
> > >  *
> > >  * Also note, that this data cannot be "const".
> > >
> > > you mean, like this in drivers/hwmon/w83627ehf.c:
> > >
> > > /* w83627ehf_find() looks for a '627 in the Super-I/O config space */
> > > static int __init w83627ehf_find(int sioaddr, unsigned short *addr,
> > >                                  struct w83627ehf_sio_data *sio_data)
> > > {
> > >         static const char __initdata sio_name_W83627EHF[] = "W83627EHF";
> > >         static const char __initdata sio_name_W83627EHG[] = "W83627EHG";
> > >         static const char __initdata sio_name_W83627DHG[] = "W83627DHG";
> > > 	...
> > >
> > > or am i misreading that?
> >
> > We have certainly seen problems with const __initdata being put
> > into a read-only section instead of the .init.data section, but
> > with gcc 4.2.1, I see these 3 __initdata items being placed into
> > the .init.data section no matter where I put "const" on the data
> > declaration line.  Maybe the problem has been fixed (relatively
> > recently).
> 
> hmmmm ... not sure if i replied to this already but, in any event,
> *something* should be updated, no?  at the very least, that comment.

Sure, when we are sure that all supported versions of gcc do the
right thing.

---
~Randy
-
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux