local_irq_disable(); 
static int stop_machine(void){	int i, ret = 0;	struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 };	mm_segment_t old_fs = get_fs();	/* One high-prio thread per cpu.  We'll do this one. */	set_fs(KERNEL_DS);	sys_sched_setscheduler(current->pid, SCHED_FIFO,				(struct sched_param __user *)&param);	set_fs(old_fs);	atomic_set(&stopmachine_thread_ack, 0);	stopmachine_num_threads = 0;	stopmachine_state = STOPMACHINE_WAIT;	for_each_online_cpu(i) {		if (i == raw_smp_processor_id())			continue;		ret = kernel_thread(stopmachine, (void *)(long)i,CLONE_KERNEL);		if (ret < 0)			break;		stopmachine_num_threads++;	}	/* Wait for them all to come to life. */	while (atomic_read(&stopmachine_thread_ack) != stopmachine_num_threads)		yield();	/* If some failed, kill them all. */	if (ret < 0) {		stopmachine_set_state(STOPMACHINE_EXIT);		up(&stopmachine_mutex);		return ret;	}	/* Don't schedule us away at this point, please. */	local_irq_disable();	/* Now they are all started, make them hold the CPUs, ready. */	stopmachine_set_state(STOPMACHINE_PREPARE);	/* Make them disable irqs. */	stopmachine_set_state(STOPMACHINE_DISABLE_IRQ);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4557398f8cbaf9f254cff747534b4724c7f75c4f/stop_machine.c/clean/kernel/stop_machine.c