spin_lock(&p->sighand->siglock); 
int posix_cpu_timer_del(struct k_itimer *timer){	struct task_struct *p = timer->it.cpu.task;	if (timer->it.cpu.firing)		return TIMER_RETRY;	if (unlikely(p == NULL))		return 0;	spin_lock(&p->sighand->siglock);	if (!list_empty(&timer->it.cpu.entry)) {		/*		 * Take us off the task's timer list.  We don't need to		 * take tasklist_lock and check for the task being reaped.		 * If it was reaped, it already called posix_cpu_timers_exit		 * and posix_cpu_timers_exit_group to clear all the timers		 * that pointed to it.		 */		list_del(&timer->it.cpu.entry);		put_task_struct(p);	}	spin_unlock(&p->sighand->siglock);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/9465bee863bc4c6cf1566c12d6f92a8133e3da5c/posix-cpu-timers.c/clean/kernel/posix-cpu-timers.c