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

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

 




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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux