Skip to contentSkip to conversation

net/slip: replace schedule_timeout() with msleep()

PATCH Applied [email protected] 3 participants 3 messages Mar 6, 2005 – Mar 23, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 14/26 net/slip: replace schedule_timeout() with msleep()

Use msleep() instead of schedule_timeout() to guarantee
the task delays as expected. While the original code does use TASK_INTERRUPTIBLE, it does not check for signals, so I believe msleep() is more appropriate.

---

 kj-domen/drivers/net/slip.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
drivers/net/slip.c renamed from drivers/net/slip.c~msleep-drivers_net_slip +3 -4
diff -puN drivers/net/slip.c~msleep-drivers_net_slip drivers/net/slip.c
@@ -75,6 +75,7 @@
 #include <linux/if_arp.h>
 #include <linux/if_slip.h>
 #include <linux/init.h>
+#include <linux/delay.h>
 #include "slip.h"
 #ifdef CONFIG_INET
 #include <linux/ip.h>
@@ -1395,10 +1396,8 @@ static void __exit slip_exit(void)
 	/* First of all: check for active disciplines and hangup them.
 	 */
 	do {
-		if (busy) {
-			set_current_state(TASK_INTERRUPTIBLE);
-			schedule_timeout(HZ / 10);
-		}
+		if (busy)
+			msleep(100);
 
 		busy = 0;
 		for (i = 0; i < slip_maxdev; i++) {

_

#1 lore raw
Quoted 25 lines · [email protected] wrote:

Use msleep() instead of schedule_timeout() to guarantee
the task delays as expected. While the original code does use TASK_INTERRUPTIBLE, it does not check for signals, so I believe msleep() is more appropriate.

---

 kj-domen/drivers/net/slip.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff -puN drivers/net/slip.c~msleep-drivers_net_slip drivers/net/slip.c

drivers/net/slip.c renamed from drivers/net/slip.c~msleep-drivers_net_slip +1 -0
@@ -75,6 +75,7 @@
 #include <linux/if_arp.h>
 #include <linux/if_slip.h>
 #include <linux/init.h>
+#include <linux/delay.h>
 #include "slip.h"
 #ifdef CONFIG_INET
 #include <linux/ip.h>

drivers/net/slip.c static void __exit slip_exit(void) · line 1400

Quoted 9 lines
drivers/net/slip.c renamed from drivers/net/slip.c~msleep-drivers_net_slip +2 -4
@@ -1395,10 +1396,8 @@ static void __exit slip_exit(void)
 	/* First of all: check for active disciplines and hangup them.
 	 */
 	do {
-		if (busy) {
-			set_current_state(TASK_INTERRUPTIBLE);
-			schedule_timeout(HZ / 10);
-		}
+		if (busy)
+			msleep(100);

msleep_interruptible

#2 lore raw
Quoted 31 lines · Jeff Garzik
Quoted 30 lines · [email protected] wrote:

Use msleep() instead of schedule_timeout() to guarantee
the task delays as expected. While the original code does use TASK_INTERRUPTIBLE, it does not check for signals, so I believe msleep() is more
appropriate.

---

kj-domen/drivers/net/slip.c | 7 +++----

1 files changed, 3 insertions(+), 4 deletions(-)

diff -puN drivers/net/slip.c~msleep-drivers_net_slip drivers/net/slip.c
--- kj/drivers/net/slip.c~msleep-drivers_net_slip 2005-03-05
16:10:49.000000000 +0100
+++ kj-domen/drivers/net/slip.c 2005-03-05 16:10:49.000000000 +0100

drivers/net/slip.c renamed from drivers/net/slip.c~msleep-drivers_net_slip +1 -0
@@ -75,6 +75,7 @@
 #include <linux/if_arp.h>
 #include <linux/if_slip.h>
 #include <linux/init.h>
+#include <linux/delay.h>
 #include "slip.h"
 #ifdef CONFIG_INET
 #include <linux/ip.h>
@@ -1395,10 +1396,8 @@ static void __exit slip_exit(void)
 	/* First of all: check for active disciplines and hangup them.
 	 */
 	do {
Quoted 8 lines

drivers/net/slip.c static void __exit slip_exit(void) · line 1400

Quoted 6 lines
drivers/net/slip.c renamed from drivers/net/slip.c~msleep-drivers_net_slip +2 -4
-		if (busy) {
-			set_current_state(TASK_INTERRUPTIBLE);
-			schedule_timeout(HZ / 10);
-		}
+		if (busy)
+			msleep(100);

msleep_interruptible

I'm fine with changing this; what should the code do if a signal causes an early return? I switched to msleep() in my patch because the current code did nothing and that seemed buggy to me.

Thanks for the feedback,
Nish