* If done is negative we do not stop the CPU timer * because we will get instantly an interrupt that * will start the CPU timer again. 
* If the CPU timer is negative we don't reprogramm * it because we will get instantly an interrupt. 
static void stop_cpu_timer(void){	__u64 done;	struct vtimer_queue *vt_list;	vt_list = &per_cpu(virt_cpu_timer, smp_processor_id());	/* nothing to do */	if (list_empty(&vt_list->list)) {		vt_list->idle = VTIMER_MAX_SLICE;		goto fire;	}	/* store progress */	asm volatile ("STPT %0" : "=m" (done));	/*	 * If done is negative we do not stop the CPU timer	 * because we will get instantly an interrupt that	 * will start the CPU timer again.	 */	if (done & 1LL<<63)		return;	else		vt_list->offset += vt_list->to_expire - done;	/* save the actual expire value */	vt_list->idle = done;	/*	 * We cannot halt the CPU timer, we just write a value that	 * nearly never expires (only after 71 years) and re-write	 * the stored expire value if we continue the timer	 */ fire:	set_vtimer(VTIMER_MAX_SLICE);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4b7e0706620e3947dc1685dfdbc1413404afb545/vtime.c/clean/arch/s390/kernel/vtime.c