reipl_diag();  
static void do_machine_restart(void * __unused){	int cpu;	static atomic_t cpuid = ATOMIC_INIT(-1);	if (atomic_compare_and_swap(-1, smp_processor_id(), &cpuid))		signal_processor(smp_processor_id(), sigp_stop);	/* Wait for all other cpus to enter stopped state */	for_each_online_cpu(cpu) {		if (cpu == smp_processor_id())			continue;		while(!smp_cpu_not_running(cpu))			cpu_relax();	}	/* Store status of other cpus. */	do_store_status();	/*	 * Finally call reipl. Because we waited for all other	 * cpus to enter this function we know that they do	 * not hold any s390irq-locks (the cpus have been	 * interrupted by an external interrupt and s390irq	 * locks are always held disabled).	 */	if (MACHINE_IS_VM)		cpcmd ("IPL", NULL, 0, NULL);	else		reipl (0x10000 | S390_lowcore.ipl_device);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/c782268be8892962a1ae2c09a2e87e7849454ef1/smp.c/buggy/arch/s390/kernel/smp.c