net/slip: replace schedule_timeout() with msleep()
Subsystems (2)
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
@@ -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++) {
_
Quoted 25 lines · [email protected] wrote:
Use
msleep()instead ofschedule_timeout()to guarantee
the task delays as expected. While the original code does useTASK_INTERRUPTIBLE, it does not check for signals, so I believemsleep()is more appropriate.Signed-off-by Nishanth Aravamudan <[email protected]>Signed-off-by Domen Puncer <[email protected]>---
kj-domen/drivers/net/slip.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-)diff -puN
drivers/net/slip.c~msleep-drivers_net_slipdrivers/net/slip.cdrivers/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
Quoted 31 lines · Jeff Garzik
Quoted 30 lines · [email protected] wrote:
Use
msleep()instead ofschedule_timeout()to guarantee
the task delays as expected. While the original code does useTASK_INTERRUPTIBLE, it does not check for signals, so I believemsleep()is more
appropriate.Signed-off-by Nishanth Aravamudan <[email protected]>Signed-off-by Domen Puncer <[email protected]>---
kj-domen/drivers/net/slip.c| 7 +++----1 files changed, 3 insertions(+), 4 deletions(-)diff -puN
drivers/net/slip.c~msleep-drivers_net_slipdrivers/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.c2005-03-05 16:10:49.000000000 +0100drivers/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