From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Garzik Subject: Re: [patch 15/18] net/ibmtr: replace schedule_timeout() with msleep()/msleep_interruptible() Date: Sun, 31 Oct 2004 06:03:07 -0500 Message-ID: <4184C66B.8040501@pobox.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: netdev@oss.sgi.com, nacc@us.ibm.com Return-path: To: janitor@sternwelten.at In-Reply-To: Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org janitor@sternwelten.at 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 > Signed-off-by: Maximilian Attems > > --- > > 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 > +#include > > #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