Hi, I have been looking at the linux serial driver initialization routine rs_init() in drivers/char/serial.c. This routine gets invoked as a part of a do-while loop in do_initcalls() in init/main.c.The code looks something like this: static void __init do_initcalls(void) { initcall_t *call; call = &__initcall_start; do { (*call)(); call++; } while (call < &__initcall_end); /* Make sure there is no pending stuff from the initcall sequence */ flush_scheduled_tasks(); } I would like to know where exactly is rs_init() being inserted into the chain of routines that gets invoked in the do-while loop. I see that initcall_start is placed in the init section of the code segment.I see a lot of init routines starting at initcall_start in the System.map file. TIA Manoj - Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ IRC Channel: irc.openprojects.net / #kernelnewbies Web Page: http://www.kernelnewbies.org/