From: Bill M. <bi...@bi...> - 2000-12-20 02:03:11
|
Having a problem with the initialization functions called from this proceedure located in kernel/init/main.c static void __init do_initcalls(void) { initcall_t *call; call = &__initcall_start; do { (*call)(); call++; } while (call < &__initcall_end); } A sample of the mapfile bracketed by symbols __initcall_start & __initcall_end is allocated so: 8c10cc90 ? .initcal 8c10cc90 ? __initcall_kswapd_init 8c10cc90 A __initcall_start 8c10cc90 A __setup_end 8c10cca0 ? .initcal 8c10cca0 ? __initcall_bdflush_init - - - 8c10cd30 A __initcall_end My problem is that the above proceedure increments "call" by 4 but the function pointers which are positioned between __initcall_start .. end, "__initcall_kswapd_init" & "__initcall_bdflush_init", are allocated 0x10 bytes apart and execution results expectedly in "Address Error". Suggestions? |