[PATCH] drivers/char/synclinkmp.c: fix polling loop From: Marcin Slusarz Signed-off-by: Marcin Slusarz Signed-off-by: Alexey Dobriyan Index: linux-kj/drivers/char/synclinkmp.c =================================================================== --- linux-kj.orig/drivers/char/synclinkmp.c 2006-01-18 16:45:23.000000000 +0300 +++ linux-kj/drivers/char/synclinkmp.c 2006-01-18 16:45:42.000000000 +0300 @@ -5132,8 +5132,8 @@ int register_test(SLMP_INFO *info) int irq_test(SLMP_INFO *info) { - unsigned long timeout; unsigned long flags; + unsigned long end_time; unsigned char timer = (info->port_num & 1) ? TIMER2 : TIMER0; @@ -5167,8 +5167,8 @@ int irq_test(SLMP_INFO *info) spin_unlock_irqrestore(&info->lock,flags); - timeout=100; - while( timeout-- && !info->irq_occurred ) { + end_time = jiffies + msecs_to_jiffies(1000); + while (time_before(jiffies, end_time) && !info->irq_occurred) { msleep_interruptible(10); }