From: Nishanth Aravamudan Subject: [Kernel-janitors] [PATCH 2.6.9-rc2 21/38] net/lanstreamer: replace schedule_timeout() with ssleep()/msleep_interruptible() Use ssleep() / 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 Signed-off-by: Domen Puncer --- lanstreamer.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) Index: quilt/drivers/net/tokenring/lanstreamer.c =================================================================== --- quilt.orig/drivers/net/tokenring/lanstreamer.c +++ quilt/drivers/net/tokenring/lanstreamer.c @@ -454,8 +454,7 @@ static int streamer_reset(struct net_dev writew(readw(streamer_mmio + BCTL) | BCTL_SOFTRESET, streamer_mmio + BCTL); t = jiffies; /* Hold soft reset bit for a while */ - current->state = TASK_UNINTERRUPTIBLE; - schedule_timeout(HZ); + ssleep(1); writew(readw(streamer_mmio + BCTL) & ~BCTL_SOFTRESET, streamer_mmio + BCTL); @@ -511,8 +510,7 @@ static int streamer_reset(struct net_dev writew(SISR_MI, streamer_mmio + SISR_MASK_SUM); while (!((readw(streamer_mmio + SISR)) & SISR_SRB_REPLY)) { - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(HZ/10); + msleep_interruptible(100); if (jiffies - t > 40 * HZ) { printk(KERN_ERR "IBM PCI tokenring card not responding\n");