stack_page = 4096 + (unsigned long)p->thread_info; 
stack_start = (unsigned long)(p->thread_info + 1); stack_end = ((unsigned long)p->thread_info) + THREAD_SIZE;  
unsigned long get_wchan(struct task_struct *p){	unsigned long fp, lr;	unsigned long stack_page;	int count = 0;	if (!p || p == current || p->state == TASK_RUNNING)		return 0;	stack_page = 4096 + (unsigned long)p->thread_info;	fp = thread_saved_fp(p);	do {		if (fp < stack_page || fp > 4092+stack_page)			return 0;		lr = pc_pointer (((unsigned long *)fp)[-1]);		if (!in_sched_functions(lr))			return lr;		fp = *(unsigned long *) (fp - 12);	} while (count ++ < 16);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4f7a18124c1a44858fb74a1c4234015009952959/process.c/buggy/arch/arm/kernel/process.c