Fixing module loading and unloading Module initialization is done by one function: module_init(my_init_function); The proposal would split them in two: initcall(my_init_function); Performs setup Can fail Makes no resources visible to kernel startcall(my_start_function); Makes module visible to the kernel Can not fail This change helps avoid module load races Module is visible only when fully set up No "unload after access" failure paths