patch-2.1.127 linux/arch/alpha/kernel/osf_sys.c
Next file: linux/arch/alpha/kernel/sys_sio.c
Previous file: linux/arch/alpha/defconfig
Back to the patch index
Back to the overall index
-  Lines: 29
-  Date:
Thu Nov  5 09:58:29 1998
-  Orig file: 
v2.1.126/linux/arch/alpha/kernel/osf_sys.c
-  Orig date: 
Thu Sep 17 17:53:34 1998
diff -u --recursive --new-file v2.1.126/linux/arch/alpha/kernel/osf_sys.c linux/arch/alpha/kernel/osf_sys.c
@@ -1306,6 +1306,7 @@
 {
 	struct timeval tmp;
 	unsigned long ticks;
+	unsigned long tmp_timeout;
 
 	if (get_tv32(&tmp, sleep))
 		goto fault;
@@ -1313,18 +1314,11 @@
 	ticks = tmp.tv_usec;
 	ticks = (ticks + (1000000 / HZ) - 1) / (1000000 / HZ);
 	ticks += tmp.tv_sec * HZ;
-	current->timeout = ticks + jiffies;
-	current->state = TASK_INTERRUPTIBLE;
 
-	schedule();
+	current->state = TASK_INTERRUPTIBLE;
+	ticks = schedule_timeout(ticks);
 
 	if (remain) {
-		ticks = jiffies;
-		if (ticks < current->timeout)
-			ticks = current->timeout - ticks;
-		else
-			ticks = 0;
-		current->timeout = 0;
 		tmp.tv_sec = ticks / HZ;
 		tmp.tv_usec = ticks % HZ;
 		if (put_tv32(remain, &tmp))
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov