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/tokenring/3c359.c |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/net/tokenring/3c359.c b/drivers/net/tokenring/3c359.c
index 44a06f8..88fe955 100644
--- a/drivers/net/tokenring/3c359.c
+++ b/drivers/net/tokenring/3c359.c
@@ -42,6 +42,7 @@
 
 #define XL_DEBUG 0
 
+#include <linux/jiffies.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
@@ -408,7 +409,7 @@ static int xl_hw_reset(struct net_device *dev)
        t=jiffies;
        while (readw(xl_mmio + MMIO_INTSTATUS) & INTSTAT_CMD_IN_PROGRESS) { 
                schedule();             
-               if(jiffies-t > 40*HZ) {
+               if(time_after(jiffies, t + 40 * HZ)) {
                        printk(KERN_ERR "%s: 3COM 3C359 Velocity XL  card not 
responding to global reset.\n", dev->name);
                        return -ENODEV;
                }
@@ -519,7 +520,7 @@ static int xl_hw_reset(struct net_device *dev)
        t=jiffies;
        while ( !(readw(xl_mmio + MMIO_INTSTATUS_AUTO) & INTSTAT_SRB) ) { 
                schedule();             
-               if(jiffies-t > 15*HZ) {
+               if(time_after(jiffies, t + 15 * HZ)) {
                        printk(KERN_ERR "3COM 3C359 Velocity XL  card not 
responding.\n");
                        return -ENODEV; 
                }
@@ -790,7 +791,7 @@ static int xl_open_hw(struct net_device *dev)
        t=jiffies;
        while (! (readw(xl_mmio + MMIO_INTSTATUS) & INTSTAT_SRB)) { 
                schedule();             
-               if(jiffies-t > 40*HZ) {
+               if(time_after(jiffies, t + 40 * HZ)) {
                        printk(KERN_ERR "3COM 3C359 Velocity XL  card not 
responding.\n");
                        break ; 
                }
@@ -1003,7 +1004,7 @@ static void xl_reset(struct net_device *dev)
 
        t=jiffies;
        while (readw(xl_mmio + MMIO_INTSTATUS) & INTSTAT_CMD_IN_PROGRESS) { 
-               if(jiffies-t > 40*HZ) {
+               if(time_after(jiffies, t + 40 * HZ)) {
                        printk(KERN_ERR "3COM 3C359 Velocity XL  card not 
responding.\n");
                        break ; 
                }
@@ -1270,7 +1271,7 @@ static int xl_close(struct net_device *dev)
        t=jiffies;
        while (readw(xl_mmio + MMIO_INTSTATUS) & INTSTAT_CMD_IN_PROGRESS) { 
                schedule();             
-               if(jiffies-t > 10*HZ) {
+               if(time_after(jiffies, t + 10 * HZ)) {
                        printk(KERN_ERR "%s: 3COM 3C359 Velocity XL-DNSTALL not 
responding.\n", dev->name);
                        break ; 
                }
@@ -1279,7 +1280,7 @@ static int xl_close(struct net_device *dev)
        t=jiffies;
        while (readw(xl_mmio + MMIO_INTSTATUS) & INTSTAT_CMD_IN_PROGRESS) { 
                schedule();             
-               if(jiffies-t > 10*HZ) {
+               if(time_after(jiffies, t + 10 * HZ)) {
                        printk(KERN_ERR "%s: 3COM 3C359 Velocity XL-DNDISABLE 
not responding.\n", dev->name);
                        break ;
                }
@@ -1288,7 +1289,7 @@ static int xl_close(struct net_device *dev)
        t=jiffies;
        while (readw(xl_mmio + MMIO_INTSTATUS) & INTSTAT_CMD_IN_PROGRESS) { 
                schedule();             
-               if(jiffies-t > 10*HZ) {
+               if(time_after(jiffies, t + 10 * HZ)) {
                        printk(KERN_ERR "%s: 3COM 3C359 Velocity XL-UPSTALL not 
responding.\n", dev->name);
                        break ; 
                }
@@ -1305,7 +1306,7 @@ static int xl_close(struct net_device *dev)
        t=jiffies;
        while (!(readw(xl_mmio + MMIO_INTSTATUS) & INTSTAT_SRB)) { 
                schedule();             
-               if(jiffies-t > 10*HZ) {
+               if(time_after(jiffies, t + 10 * HZ)) {
                        printk(KERN_ERR "%s: 3COM 3C359 Velocity XL-CLOSENIC 
not responding.\n", dev->name);
                        break ; 
                }
@@ -1334,7 +1335,7 @@ static int xl_close(struct net_device *dev)
        t=jiffies;
        while (readw(xl_mmio + MMIO_INTSTATUS) & INTSTAT_CMD_IN_PROGRESS) { 
                schedule();             
-               if(jiffies-t > 10*HZ) {
+               if(time_after(jiffies, t + 10 * HZ)) {
                        printk(KERN_ERR "%s: 3COM 3C359 Velocity XL-UPRESET not 
responding.\n", dev->name);
                        break ; 
                }
@@ -1343,7 +1344,7 @@ static int xl_close(struct net_device *dev)
        t=jiffies;
        while (readw(xl_mmio + MMIO_INTSTATUS) & INTSTAT_CMD_IN_PROGRESS) { 
                schedule();             
-               if(jiffies-t > 10*HZ) {
+               if(time_after(jiffies, t + 10 * HZ)) {
                        printk(KERN_ERR "%s: 3COM 3C359 Velocity XL-DNRESET not 
responding.\n", dev->name);
                        break ; 
                }
-- 
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/

Reply via email to