瀏覽代碼

[IA64] use msleep_interruptible() instead of schedule_timeout

Description: Replace schedule_timeout() with msleep_interruptible() to
guarantee the task delays as expected.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Acked-by: Dean Nelson <dcn@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Nishanth Aravamudan 20 年之前
父節點
當前提交
699139279d
共有 1 個文件被更改,包括 5 次插入11 次删除
  1. 5 11
      arch/ia64/sn/kernel/xpc_main.c

+ 5 - 11
arch/ia64/sn/kernel/xpc_main.c

@@ -53,6 +53,7 @@
 #include <linux/cache.h>
 #include <linux/cache.h>
 #include <linux/interrupt.h>
 #include <linux/interrupt.h>
 #include <linux/slab.h>
 #include <linux/slab.h>
+#include <linux/delay.h>
 #include <asm/sn/intr.h>
 #include <asm/sn/intr.h>
 #include <asm/sn/sn_sal.h>
 #include <asm/sn/sn_sal.h>
 #include <asm/uaccess.h>
 #include <asm/uaccess.h>
@@ -308,8 +309,7 @@ xpc_make_first_contact(struct xpc_partition *part)
 			"partition %d\n", XPC_PARTID(part));
 			"partition %d\n", XPC_PARTID(part));
 
 
 		/* wait a 1/4 of a second or so */
 		/* wait a 1/4 of a second or so */
-		set_current_state(TASK_INTERRUPTIBLE);
-		(void) schedule_timeout(0.25 * HZ);
+		msleep_interruptible(250);
 
 
 		if (part->act_state == XPC_P_DEACTIVATING) {
 		if (part->act_state == XPC_P_DEACTIVATING) {
 			return part->reason;
 			return part->reason;
@@ -841,9 +841,7 @@ xpc_do_exit(void)
 	down(&xpc_discovery_exited);
 	down(&xpc_discovery_exited);
 
 
 
 
-	set_current_state(TASK_INTERRUPTIBLE);
-	schedule_timeout(0.3 * HZ);
-	set_current_state(TASK_RUNNING);
+	msleep_interruptible(300);
 
 
 
 
 	/* wait for all partitions to become inactive */
 	/* wait for all partitions to become inactive */
@@ -860,12 +858,8 @@ xpc_do_exit(void)
 			}
 			}
 		}
 		}
 
 
-		if (active_part_count) {
-			set_current_state(TASK_INTERRUPTIBLE);
-			schedule_timeout(0.3 * HZ);
-			set_current_state(TASK_RUNNING);
-		}
-
+		if (active_part_count)
+			msleep_interruptible(300);
 	} while (active_part_count > 0);
 	} while (active_part_count > 0);