Re: 2.6.17-mm2

Andrew Morton
2006-06-25T15:16:34Z

On Sun, 25 Jun 2006 03:22:43 -0700
Andrew Morton <akpm@osdl.org> wrote:

> Anyway. It's regrettable that the new section-checking code didn't
> complain about the bug. It looks like this is because the call to
> cpufreq_register_driver() happened at modprobe-time, and we don't check for
> that. Which is rather bad.
>
> Sam, would it be possible to check for references from modules into
> statically-linked __init code? It's always wrong...
>
> Rusty/Randy/whoever looks after modules: it also seems wrong that it's
> possible to load a module which refers to now-unloaded symbols. In fact,
> it's surprising - sorry if I'm misinterpreting this. If I'm not, it should
> be pretty easy to barf if a module is trying to get at symbols which lie
> between __init_begin and __init_end?
>

Actually we should be able to address this pretty simply by disallowing
exports of symbols which are in the __init section. There's no sense in
exporting something which ain't there.

IOW, any reference from __ksymtab, __ksymtab_gpl or __ksymtab_gpl_future
into __init or __initdata should be a hard error.

It'd be lovely to do that at compile-time, but I cannot think of a way.

Sam, does that sound reasonable&&feasible?