Skip to contentSkip to conversation

char/sx: replace schedule_timeout() with msleep_interruptible()

PATCH In review [email protected] 1 participant 1 message Mar 6, 2005 Char and misc drivers

lore
Share & tools
lore
#0 lore raw

PATCH 3/14 char/sx: replace schedule_timeout() with msleep_interruptible()

Please consider applying.

Use msleep_interruptible() instead of schedule_timeout() to guarantee consistent timing regardless of HZ value. schedule_timeout(1) will vary between 10 and 1 milliseconds, depending on the value of HZ (100 or 1000 respectively). For consistent behavior, msleep_interruptible() should be used.

---

 kj-domen/drivers/char/sx.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)
drivers/char/sx.c renamed from drivers/char/sx.c~msleep_interruptible-drivers_char_sx +2 -6
diff -puN drivers/char/sx.c~msleep_interruptible-drivers_char_sx drivers/char/sx.c
@@ -1515,13 +1515,9 @@ static void sx_close (void *ptr)
 	sx_reconfigure_port(port);	
 	sx_send_command (port, HS_CLOSE, 0, 0);
 
-	while (to-- && (sx_read_channel_byte (port, hi_hstat) != HS_IDLE_CLOSED)) {
-		set_current_state(TASK_INTERRUPTIBLE);
-		schedule_timeout (1);
-		if (signal_pending (current))
+	while (to-- && (sx_read_channel_byte (port, hi_hstat) != HS_IDLE_CLOSED))
+		if (msleep_interruptible(10))
 				break;
-	}
-	current->state = TASK_RUNNING;
 	if (sx_read_channel_byte (port, hi_hstat) != HS_IDLE_CLOSED) {
 		if (sx_send_command (port, HS_FORCE_CLOSED, -1, HS_IDLE_CLOSED) != 1) {
 			printk (KERN_ERR 

_