The functions time_before, time_before_eq, time_after, and time_after_eq are more robust for comparing jiffies against other values.
So following patch implements usage of the time_after() macro, defined at linux/jiffies.h, which deals with wrapping correctly Cc: [EMAIL PROTECTED] Signed-off-by: S.Çağlar Onur <[EMAIL PROTECTED]> --- drivers/net/ax88796.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/ax88796.c b/drivers/net/ax88796.c index 194949a..0f823d7 100644 --- a/drivers/net/ax88796.c +++ b/drivers/net/ax88796.c @@ -11,6 +11,7 @@ * published by the Free Software Foundation. */ +#include <linux/jiffies.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/errno.h> @@ -151,7 +152,7 @@ static void ax_reset_8390(struct net_device *dev) /* This check _should_not_ be necessary, omit eventually. */ while ((ei_inb(addr + EN0_ISR) & ENISR_RESET) == 0) { - if (jiffies - reset_start_time > 2*HZ/100) { + if (time_after(jiffies, reset_start_time + 2 * HZ/100)) { dev_warn(&ax->dev->dev, "%s: %s did not complete.\n", __FUNCTION__, dev->name); break; @@ -287,7 +288,7 @@ static void ax_block_output(struct net_device *dev, int count, dma_start = jiffies; while ((ei_inb(nic_base + EN0_ISR) & ENISR_RDC) == 0) { - if (jiffies - dma_start > 2*HZ/100) { /* 20ms */ + if (time_after(jiffies, dma_start + 2 * HZ/100)) { /* 20ms */ dev_warn(&ax->dev->dev, "%s: timeout waiting for Tx RDC.\n", dev->name); ax_reset_8390(dev); -- 1.5.3.7 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/