netdev
[Top] [All Lists]

Re: [patch 15/18] net/ibmtr: replace schedule_timeout() with msleep()/

To: janitor@xxxxxxxxxxxxxx
Subject: Re: [patch 15/18] net/ibmtr: replace schedule_timeout() with msleep()/msleep_interruptible()
From: Jeff Garzik <jgarzik@xxxxxxxxx>
Date: Sun, 31 Oct 2004 06:03:07 -0500
Cc: netdev@xxxxxxxxxxx, nacc@xxxxxxxxxx
In-reply-to: <E1CO1wB-0002eM-If@sputnik>
References: <E1CO1wB-0002eM-If@sputnik>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040922
janitor@xxxxxxxxxxxxxx wrote:
Any comments would be appreciated.

Description: Use msleep() / msleep_interruptible() [as appropriate]
instead of schedule_timeout() to guarantee the task delays as expected.

Signed-off-by: Nishanth Aravamudan <nacc@xxxxxxxxxx>
Signed-off-by: Maximilian Attems <janitor@xxxxxxxxxxxxxx>

---

 linux-2.6.10-rc1-max/drivers/net/tokenring/ibmtr.c |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff -puN drivers/net/tokenring/ibmtr.c~msleep+msleep_interruptible-drivers_net_tokenring_ibmtr drivers/net/tokenring/ibmtr.c
--- linux-2.6.10-rc1/drivers/net/tokenring/ibmtr.c~msleep+msleep_interruptible-drivers_net_tokenring_ibmtr 2004-10-24 17:05:34.000000000 +0200
+++ linux-2.6.10-rc1-max/drivers/net/tokenring/ibmtr.c 2004-10-24 17:05:34.000000000 +0200
@@ -108,6 +108,7 @@ in the event that chatty debug messages #define IBMTR_DEBUG_MESSAGES 0
#include <linux/module.h>
+#include <linux/delay.h>
#ifdef PCMCIA /* required for ibmtr_cs.c to build */
#undef MODULE /* yes, really */
@@ -317,7 +318,7 @@ static void ibmtr_cleanup_card(struct ne
if (dev->base_addr) {
outb(0,dev->base_addr+ADAPTRESET);

- schedule_timeout(TR_RST_TIME); /* wait 50ms */
+ msleep(jiffies_to_msecs(TR_RST_TIME)); /* wait 50ms */
outb(0,dev->base_addr+ADAPTRESETREL);
}
@@ -858,8 +859,7 @@ static int tok_init_card(struct net_devi
writeb(~INT_ENABLE, ti->mmio + ACA_OFFSET + ACA_RESET + ISRP_EVEN);
outb(0, PIOaddr + ADAPTRESET);
- current->state=TASK_UNINTERRUPTIBLE;
- schedule_timeout(TR_RST_TIME); /* wait 50ms */
+ msleep(jiffies_to_msecs(TR_RST_TIME)); /* wait 50ms */
outb(0, PIOaddr + ADAPTRESETREL);
#ifdef ENABLE_PAGING
@@ -912,9 +912,8 @@ static int tok_open(struct net_device *d
DPRINTK("Adapter is up and running\n");
return 0;
}
- current->state=TASK_INTERRUPTIBLE;
- i=schedule_timeout(TR_RETRY_INTERVAL); /* wait 30 seconds */
- if(i!=0) break; /*prob. a signal, like the i>24*HZ case above */
+ if(msleep_interruptible(jiffies_to_msecs(TR_RETRY_INTERVAL)))
+ break; /*prob. a signal, like the i>24*HZ case above */
}
outb(0, dev->base_addr + ADAPTRESET);/* kill pending interrupts*/
DPRINTK("TERMINATED via signal\n"); /*BMS useful */

It makes more sense to convert the constants to msecs in the source code, instead of converting them at runtime.


        Jeff



<Prev in Thread] Current Thread [Next in Thread>