]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] jiffies wrap fixes
authorAndrew Morton <akpm@digeo.com>
Wed, 12 Feb 2003 05:07:03 +0000 (21:07 -0800)
committerLinus Torvalds <torvalds@penguin.transmeta.com>
Wed, 12 Feb 2003 05:07:03 +0000 (21:07 -0800)
Patch from Tim Schmielau <tim@physik3.uni-rostock.de>

Converts many open-coded jiffy comparisons to use time_after/before/etc.

16 files changed:
arch/cris/drivers/usb-host.c
arch/mips/baget/vacserial.c
drivers/char/moxa.c
drivers/char/mxser.c
drivers/i2c/i2c-adap-ite.c
drivers/i2c/i2c-algo-ibm_ocp.c
drivers/isdn/hardware/eicon/i4l_idi.c
drivers/net/hamradio/yam.c
drivers/net/pcmcia/xirc2ps_cs.c
drivers/net/sis900.c
drivers/net/wan/comx-hw-comx.c
drivers/net/wan/comx-hw-mixcom.c
drivers/scsi/sym53c416.c
sound/oss/vwsnd.c
sound/pci/ens1370.c
sound/pci/korg1212/korg1212.c

index 24076eec65d39169c7bdbf449c4db06594d3409c..3a6326f735aec34824e58f8ea52b1b99a0200af1 100644 (file)
@@ -459,7 +459,8 @@ static int etrax_usb_unlink_intr_urb(struct urb *urb)
        *R_DMA_CH8_SUB2_CMD = IO_STATE(R_DMA_CH8_SUB2_CMD, cmd, stop);
        /* Somehow wait for the DMA to finish current activities */
        i = jiffies + 100;
-       while (jiffies < i);    
+       while (time_before(jiffies, i))
+               ;
        
        first_ep = &TxIntrEPList[0];
        tmp_ep = first_ep;
index f3210befb3484c79d3c63376cad504f3b84c7673..26da0aa7b85ad905df0849eef7acd7eb9857622f 100644 (file)
@@ -1785,7 +1785,7 @@ static void rs_wait_until_sent(struct tty_struct *tty, int timeout)
                schedule_timeout(char_time);
                if (signal_pending(current))
                        break;
-               if (timeout && ((orig_jiffies + timeout) < jiffies))
+               if (timeout && time_after(jiffies, orig_jiffies + timeout))
                        break;
        }
        current->state = TASK_RUNNING;
index 1d286fa4e41ca776d317d930ad74e2c0d7826e16..dc5f93e403956b4e00bacf13ccdeef77e70f2fa4 100644 (file)
@@ -2832,7 +2832,7 @@ static void moxadelay(int tick)
 
        st = jiffies;
        et = st + tick;
-       while (jiffies < et);
+       while (time_before(jiffies, et));
 }
 
 static void moxafunc(unsigned long ofsAddr, int cmd, ushort arg)
index c7c9ba02614dbcff5b4d99a34cf60d532a4e7304..f5bb6a2d49994562388000e94db2f4d7d55d4ff9 100644 (file)
@@ -857,7 +857,7 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
                while (!(inb(info->base + UART_LSR) & UART_LSR_TEMT)) {
                        set_current_state(TASK_INTERRUPTIBLE);
                        schedule_timeout(5);
-                       if (jiffies > timeout)
+                       if (time_after(jiffies, timeout))
                                break;
                }
        }
index 28352ac46df61b521374424592857c6b505e1157..3f4e4ca01ab673c82b7fe385e3ad99047f49ee11 100644 (file)
@@ -78,7 +78,7 @@ static void iic_ite_setiic(void *data, int ctl, short val)
         unsigned long j = jiffies + 10;
 
        DEB3(printk(" Write 0x%02x to 0x%x\n",(unsigned short)val, ctl&0xff));
-       DEB3({while (jiffies < j) schedule();}) 
+       DEB3({while (time_before(jiffies, j)) schedule();})
        outw(val,ctl);
 }
 
index 3b345d2e9d7896a76fb6e54df1df014eb84fd23e..288ac0aac284b19729a8543b53c925bff5b0e4c3 100644 (file)
@@ -84,7 +84,7 @@ MODULE_LICENSE("GPL");
 /* respectively. This makes sure that the algorithm works. Some chips   */
 /* might not like this, as they have an internal timeout of some mils  */
 /*
-#define SLO_IO      jif=jiffies;while(jiffies<=jif+i2c_table[minor].veryslow)\
+#define SLO_IO      jif=jiffies;while(time_before_eq(jiffies,jif+i2c_table[minor].veryslow))\
                         if (need_resched) schedule();
 */
 
index 5af03a4a5a8182ece631cfe4d7afec5085592ea3..574cefc99b0d01639c1c292720462aa359c75c33 100644 (file)
@@ -3057,7 +3057,7 @@ eicon_idi_manage(eicon_card *card, eicon_manifbuf *mb)
                }
 
                timeout = jiffies + 50;
-               while (timeout > jiffies) {
+               while (time_before(jiffies, timeout)) {
                        if (chan->e.B2Id) break;
                        SLEEP(10);
                }
@@ -3119,7 +3119,7 @@ eicon_idi_manage(eicon_card *card, eicon_manifbuf *mb)
         eicon_tx_request(card);
 
         timeout = jiffies + 50;
-        while (timeout > jiffies) {
+        while (time_before(jiffies, timeout)) {
                 if (chan->fsm_state) break;
                 SLEEP(10);
         }
index 66348071a6709514b199240323c8467259d0e8cd..6fab4921e153e2b07dfbfffd8c1aa6dbd7c4df65 100644 (file)
@@ -350,7 +350,7 @@ static int fpga_write(int iobase, unsigned char wrd)
                wrd <<= 1;
                outb(0xfc, THR(iobase));
                while ((inb(LSR(iobase)) & LSR_TSRE) == 0)
-                       if (jiffies > timeout)
+                       if (time_after(jiffies, timeout))
                                return -1;
        }
 
index 97995e1db4d93149498e47aafff8063706402526..ab17d29e01a5d1ce6a62376636e7026a14855675 100644 (file)
@@ -447,7 +447,7 @@ busy_loop(u_long len)
        u_long flags;
        save_flags(flags);
        sti();
-       while (timeout >= jiffies)
+       while (time_before_eq(jiffies, timeout))
            ;
        restore_flags(flags);
     } else {
index f23a4d026b708f54e613f5a035e3092dddbb57d2..b1f6a569ace25183f60db286f4a890a1f1388318 100644 (file)
@@ -591,7 +591,7 @@ static int __init sis900_mii_probe (struct net_device * net_dev)
                        yield();
 
                        poll_bit ^= (mdio_read(net_dev, sis_priv->cur_phy, MII_STATUS) & poll_bit);
-                       if (jiffies >= timeout) {
+                       if (time_after_eq(jiffies, timeout)) {
                                printk(KERN_WARNING "%s: reset phy and link down now\n", net_dev->name);
                                return -ETIME;
                        }
index 06a8eda24741c0c663343a88f28eeff0eccb9a0d..d9b61461e7d1038f3d52ae44f0bd6df670fb4a83 100644 (file)
@@ -492,11 +492,11 @@ static int COMX_open(struct net_device *dev)
 
        COMX_CMD(dev, COMX_CMD_INIT); 
        jiffs = jiffies;
-       while (COMX_readw(dev, OFF_A_L2_LINKUP) != 1 && jiffies < jiffs + HZ) {
+       while (COMX_readw(dev, OFF_A_L2_LINKUP) != 1 && time_before(jiffies, jiffs + HZ)) {
                schedule_timeout(1);
        }
        
-       if (jiffies >= jiffs + HZ) {
+       if (time_after_eq(jiffies, jiffs + HZ)) {
                printk(KERN_ERR "%s: board timeout on INIT command\n", dev->name);
                ch->HW_release_board(dev, savep);
                retval=-EIO;
@@ -507,11 +507,11 @@ static int COMX_open(struct net_device *dev)
        COMX_CMD(dev, COMX_CMD_OPEN);
 
        jiffs = jiffies;
-       while (COMX_readw(dev, OFF_A_L2_LINKUP) != 3 && jiffies < jiffs + HZ) {
+       while (COMX_readw(dev, OFF_A_L2_LINKUP) != 3 && time_before(jiffies, jiffs + HZ)) {
                schedule_timeout(1);
        }
        
-       if (jiffies >= jiffs + HZ) {
+       if (time_after_eq(jiffies, jiffs + HZ)) {
                printk(KERN_ERR "%s: board timeout on OPEN command\n", dev->name);
                ch->HW_release_board(dev, savep);
                retval=-EIO;
index 349d1b35e3a046ea42aae965fcb2754e5985a17a..2439022227767b4fb2488e1648a3709d6bc606cf 100644 (file)
@@ -104,7 +104,7 @@ static inline void hscx_cmd(struct net_device *dev, int cmd)
        unsigned delay = 0;
 
        while ((cec = (rd_hscx(dev, HSCX_STAR) & HSCX_CEC) != 0) && 
-           (jiffs + HZ > jiffies)) {
+           time_before(jiffies, jiffs + HZ)) {
                udelay(1);
                if (++delay > (100000 / HZ)) break;
        }
index 5d87231fca00d88f47004e076308ff11c716ef9a..ad0db567426a03a7d946383bee64c11db463681d 100644 (file)
@@ -272,7 +272,7 @@ static __inline__ unsigned int sym53c416_read(int base, unsigned char *buffer, u
                {
                        i = jiffies + timeout;
                        spin_unlock_irqrestore(&sym53c416_lock, flags);
-                       while(jiffies < i && (inb(base + PIO_INT_REG) & EMPTY) && timeout)
+                       while(time_before(jiffies, i) && (inb(base + PIO_INT_REG) & EMPTY) && timeout)
                                if(inb(base + PIO_INT_REG) & SCI)
                                        timeout = 0;
                        spin_lock_irqsave(&sym53c416_lock, flags);
@@ -316,7 +316,7 @@ static __inline__ unsigned int sym53c416_write(int base, unsigned char *buffer,
                {
                        i = jiffies + timeout;
                        spin_unlock_irqrestore(&sym53c416_lock, flags);
-                       while(jiffies < i && (inb(base + PIO_INT_REG) & FULL) && timeout)
+                       while(time_before(jiffies, i) && (inb(base + PIO_INT_REG) & FULL) && timeout)
                                ;
                        spin_lock_irqsave(&sym53c416_lock, flags);
                        if(inb(base + PIO_INT_REG) & FULL)
@@ -552,7 +552,7 @@ static int sym53c416_probeirq(int base, int scsi_id)
        outb(0x00, base + DEST_BUS_ID);
        /* Wait for interrupt to occur */
        i = jiffies + 20;
-       while(i > jiffies && !(inb(base + STATUS_REG) & SCI))
+       while(time_before(jiffies, i) && !(inb(base + STATUS_REG) & SCI))
                barrier();
        if(time_before_eq(i, jiffies))  /* timed out */
                return 0;
index 609b5925ca8977cd758d911bb11091f150a17637..1ae71dccdcc0f809a51e5c18fdcd85c8b30e6704 100644 (file)
@@ -3260,7 +3260,7 @@ static int __init probe_vwsnd(struct address_info *hw_config)
        li_writel(&lith, LI_HOST_CONTROLLER, LI_HC_LINK_ENABLE);
        do {
                w = li_readl(&lith, LI_HOST_CONTROLLER);
-       } while (w == LI_HC_LINK_ENABLE && jiffies < later);
+       } while (w == LI_HC_LINK_ENABLE && time_before(jiffies, later));
        
        li_destroy(&lith);
 
index 8c9d81336df111b55a0657623c2f562e91a74057..64777a04ba4c15eb6e7ed73e49ea3b90d44cd788 100644 (file)
@@ -1664,7 +1664,7 @@ static int snd_ensoniq_joy_enable(ensoniq_t *ensoniq)
        if (!request_region(ensoniq->gameport.io, 8, "ens137x: gameport")) {
 #define ES___GAMEPORT_LOG_DELAY (30*HZ)
                // avoid log pollution: limit to 2 infos per minute
-               if (jiffies > last_jiffies + ES___GAMEPORT_LOG_DELAY) {
+               if (time_after(jiffies, last_jiffies + ES___GAMEPORT_LOG_DELAY)) {
                        last_jiffies = jiffies;
                        snd_printk("gameport io port 0x%03x in use", ensoniq->gameport.io);
                }
index 07406465bc49cb4ff9602180cb98d0bb2e1561a6..9fb4363bf3121d57df691c24fc973b34a0bcb125 100644 (file)
@@ -598,7 +598,7 @@ static void snd_korg1212_WaitForCardStopAck(korg1212_t *korg1212)
                         return;
                 if (!korg1212->inIRQ)
                         schedule();
-        } while (jiffies < endtime);
+        } while (time_before(jiffies, endtime));
 
         writel(0, &korg1212->sharedBufferPtr->cardCommand);
 }