I stumbled upon this code when I was trying to get an early printk working for 386. There is a real need for things to be able to parse the command line in setup_arch(), for many architectures. parse_options() no longer runs the setup functions, it only parses. It may be called more than once with no ill effects. This way it can be called in setup_arch(), then again in the generic start_kernel(). run_setup() comes along later and actually runs the __setup functions. It can do this in many phases, as long as parse_options() is called first. The last run_setup() is special because it goes through and picks up all of the environment variables and init arguments that are left over, setting them with setup_setenv() -- Dave Hansen haveblue@us.ibm.com