Re: [PATCH 3/3] Assert notifier_block and notifier_call are not ininit section

From: Linus Torvalds
Date: Tue Apr 25 2006 - 15:17:41 EST




On Tue, 25 Apr 2006, Chandra Seetharaman wrote:
>
> Two questions:
> 1) related to this patch: Do you want me to generate a patch that
> asserts only notifier calls ?

I don't really have any strong preferences. It seems a bit strange that
we'd do it for notifiers but not for other people. It might be better to
try to build it into the build system itself, and get it through the
_normal_ "section checking".

One way to do that would be to make the "register_notifier()" thing just
create this dummy asm() that just puts the arguments into a section that
doesn't even get loaded, but that cna be checked.

> 2) Unrelated to this patch: If the _code_ section is never reallocated
> or reused, what is the purpose of putting _code_ in the init section ?
> Only to make sure that the init calls are called in order ?

No, the code section is re-used, it's just never re-used for any other
code (since we don't generate code on the fly). So if you pass in a
function pointer, you know that if it's in the init section, it means that
init-code that was discarded.

But if you pass in a data pointer, you'll never know if it's a data
pointer to the original init-code section, or if it was a data pointer
that was just dynamically allocated after the init-code section was freed.

> PS: I fixed my mailer to put my name. sorry about that.

Looks good.

Linus
-
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/