#ifndef __s390x__ if (MACHINE_HAS_IEEE) ctl_set_bit(14, 29); /* enable extended save area */ #endif 
void __init smp_prepare_cpus(unsigned int max_cpus){	unsigned long stack;	unsigned int cpu;        int i;        /* request the 0x1202 external interrupt */        if (register_external_interrupt(0x1202, do_ext_call_interrupt) != 0)                panic("Couldn't request external interrupt 0x1202");        smp_check_cpus(max_cpus);        memset(lowcore_ptr,0,sizeof(lowcore_ptr));          /*         *  Initialize prefix pages and stacks for all possible cpus         */	print_cpu_info(&S390_lowcore.cpu_data);        for(i = 0; i < NR_CPUS; i++) {		if (!cpu_possible(i))			continue;		lowcore_ptr[i] = (struct _lowcore *)			__get_free_pages(GFP_KERNEL|GFP_DMA, 					sizeof(void*) == 8 ? 1 : 0);		stack = __get_free_pages(GFP_KERNEL,ASYNC_ORDER);		if (lowcore_ptr[i] == NULL || stack == 0ULL)			panic("smp_boot_cpus failed to allocate memory\n");		*(lowcore_ptr[i]) = S390_lowcore;		lowcore_ptr[i]->async_stack = stack + (ASYNC_SIZE);#ifdef CONFIG_CHECK_STACK		stack = __get_free_pages(GFP_KERNEL,0);		if (stack == 0ULL)			panic("smp_boot_cpus failed to allocate memory\n");		lowcore_ptr[i]->panic_stack = stack + (PAGE_SIZE);#endif	}	set_prefix((u32)(unsigned long) lowcore_ptr[smp_processor_id()]);	for_each_cpu(cpu)		if (cpu != smp_processor_id())			smp_create_idle(cpu);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/77fa22450de00d535de2cc8be653983560828000/smp.c/buggy/arch/s390/kernel/smp.c