Re: [PATCH] initconst adjustments

From: Jan Beulich
Date: Fri Mar 13 2009 - 04:02:40 EST


>>> Sam Ravnborg <sam@xxxxxxxxxxxx> 12.03.09 23:17 >>>
>On Thu, Mar 12, 2009 at 10:58:33AM +0000, Jan Beulich wrote:
>> +#define INIT_SECTIONS ".init.*"
>> +#define DEV_INIT_SECTIONS ".devinit.*"
>> +#define CPU_INIT_SECTIONS ".cpuinit.*"
>> +#define MEM_INIT_SECTIONS ".meminit.*"
>> +
>> +#define EXIT_SECTIONS ".exit.*"
>> +#define DEV_EXIT_SECTIONS ".devexit.*"
>> +#define CPU_EXIT_SECTIONS ".cpuexit.*"
>> +#define MEM_EXIT_SECTIONS ".memexit.*"
>
>The abvoe simplification now makes us math all sections that starts with
>for example .init. - and we have seen sections named .init.1 for example.

But that exactly is intended: Anything named .init.* should be what its
name says - init-only code or data. Even (if it was used anywhere) .init
itself should be this and nothing else. Any other use of such a name is
really broken imo.

>So I'm afraid that we will simply match too many sections here on the various
>architectures.
>
>
>A quick grep showed for example:
>arch/blackfin/kernel/vmlinux.lds.S: .init.setup :
>arch/blackfin/kernel/vmlinux.lds.S: *(.init.setup)
>arch/blackfin/kernel/vmlinux.lds.S: .init.ramfs :
>arch/blackfin/kernel/vmlinux.lds.S: *(.init.ramfs)

Which is precisely a case that we want to cover: These two sections are
init-only data (and site between ___init_begin and ___init_end, and hence
ought to be subject of the modpost checking.

Jan

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/