From: Nishanth Aravamudan <nacc@xxxxxxxxxx> Use ssleep() / 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> Signed-off-by: Domen Puncer <domen@xxxxxxxxxxxx> --- 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"); -- - : send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html