smp_processor_id(), func, info, callmap, data.pending, wait ? "" : "no "); 
smp_processor_id(), func, info, *cpus_addr(callmap), *cpus_addr(data.pending), wait ? "" : "no "); 
int smp_call_function_on_cpu(void (*func)(void *info), void *info, int retry,                             int wait, cpumask_t callmap){	struct smp_call_struct data;	unsigned long timeout;	int ret = 0;	data.func = func;	data.info = info;	data.wait = wait;	cpu_clear(smp_processor_id(), callmap);	if (cpus_empty(callmap))		goto out;	data.pending = callmap;	if (wait)		data.unfinished = callmap;	/*	 * try to get the mutex on smp_call_function_data	 */	spin_lock(&smp_call_function_lock);	smp_call_function_data = &data;	send_ipi_message(callmap, IPI_CALL_FUNC);	timeout = jiffies + HZ;	while (!cpus_empty(data.pending) && time_before(jiffies, timeout))		barrier();	/*	 * did we time out?	 */	if (!cpus_empty(data.pending)) {		/*		 * this may be causing our panic - report it		 */		printk(KERN_CRIT		       "CPU%u: smp_call_function timeout for %p(%p)\n"		       "      callmap %lx pending %lx, %swait\n",		       smp_processor_id(), func, info, callmap, data.pending,		       wait ? "" : "no ");		/*		 * TRACE		 */		timeout = jiffies + (5 * HZ);		while (!cpus_empty(data.pending) && time_before(jiffies, timeout))			barrier();		if (cpus_empty(data.pending))			printk(KERN_CRIT "     RESOLVED\n");		else			printk(KERN_CRIT "     STILL STUCK\n");	}	/*	 * whatever happened, we're done with the data, so release it	 */	smp_call_function_data = NULL;	spin_unlock(&smp_call_function_lock);	if (!cpus_empty(data.pending)) {		ret = -ETIMEDOUT;		goto out;	}	if (wait)		while (!cpus_empty(data.unfinished))			barrier(); out:	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/273c2cdb2b6d6743d85ddbde82e71f8adbf5bf10/smp.c/buggy/arch/arm/kernel/smp.c