[PATCH] w1/w1_therm: replace schedule_timeout() with msleep_interruptible()
From: Greg KH
Date: Fri Mar 04 2005 - 17:18:04 EST
ChangeSet 1.2080, 2005/03/02 16:58:20-08:00, nacc@xxxxxxxxxx
[PATCH] w1/w1_therm: replace schedule_timeout() with msleep_interruptible()
Description: Use msleep_interruptible() instead of schedule_timeout() to
guarantee the task delays as expected. Changed tm to an int, as it now is in
terms of msecs, not jiffies.
Signed-off-by: Nishanth Aravamudan <nacc@xxxxxxxxxx>
Signed-off-by: Evgeniy Polyakov <johnpol@xxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <greg@xxxxxxxxx>
drivers/w1/w1_therm.c | 10 ++++------
1 files changed, 4 insertions(+), 6 deletions(-)
diff -Nru a/drivers/w1/w1_therm.c b/drivers/w1/w1_therm.c
--- a/drivers/w1/w1_therm.c 2005-03-04 12:38:25 -08:00
+++ b/drivers/w1/w1_therm.c 2005-03-04 12:38:25 -08:00
@@ -26,6 +26,7 @@
#include <linux/moduleparam.h>
#include <linux/device.h>
#include <linux/types.h>
+#include <linux/delay.h>
#include "w1.h"
#include "w1_io.h"
@@ -128,7 +129,7 @@
if (!w1_reset_bus (dev)) {
int count = 0;
u8 match[9] = {W1_MATCH_ROM, };
- unsigned long tm;
+ unsigned int tm = 750;
memcpy(&match[1], (u64 *) & sl->reg_num, 8);
@@ -136,11 +137,8 @@
w1_write_8(dev, W1_CONVERT_TEMP);
- tm = jiffies + msecs_to_jiffies(750);
- while(time_before(jiffies, tm)) {
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(tm-jiffies);
-
+ while (tm) {
+ tm = msleep_interruptible(tm);
if (signal_pending(current))
flush_signals(current);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/