On Tue, 14 Aug 2001, Keith Owens wrote:
> Checking dbe table is fine but where you placed the table in struct
> modules is wrong. You must not insert fields in the middle of struct
> module, it introduces version skew between kernel and user space. At
> the very least you have moved the can_unload which will break IPv6 plus
> a few other modules.
[...]
Thanks a lot for the detailed explanation. I'll cook an improvement
soon.
> The only other change you have to make is to init_modules(). For mips
> you create pointers to the kernel dbe tables and fill in archdata start
> and end in kernel_module. Since init_module is called before kmalloc
> is ready, make the kernel dbe table a static variable.
__dbe_table is initialized exactly like __ex_table, i.e. it's a separate
ELF section with pointers to the start and the end computed in a linker
script. Thus it is fine. The table has actually been present in the
kernel for quite some time already.
Maciej
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
|