/* GK  - Changed to support mounting root fs via NFS Added initrd & change_root: Werner Almesberger & Hans Lermen, Feb '96 Moan early if gcc is old, avoiding bogus kernels - Paul Gortmaker, May '96 Simplified starting of init: Michael A. Griffith  */
static int __init kernel_init(void *)
/* GK  - Changed to support mounting root fs via NFS Added initrd & change_root: Werner Almesberger & Hans Lermen, Feb '96 Moan early if gcc is old, avoiding bogus kernels - Paul Gortmaker, May '96 Simplified starting of init: Michael A. Griffith  */
static int __init kernel_init(void *)
{
	lock_kernel();
	set_mems_allowed(node_possible_map);
	set_cpus_allowed_ptr(current, cpu_all_mask);
	init_pid_ns.child_reaper = current;
	cad_pid = task_pid(current);
	smp_prepare_cpus(setup_max_cpus);
	do_pre_smp_initcalls();
	start_boot_trace();
	smp_init();
	sched_init_smp();
	do_basic_setup();
	if (!ramdisk_execute_command)
		ramdisk_execute_command = "/init";
	if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
		ramdisk_execute_command = NULL;
		prepare_namespace();
	}
	init_post();
	return 0;
}