Re: jiffie wraps clean-ups

From: Andrzej Krzysztofowicz (ankry@pg.gda.pl)
Date: Wed May 10 2000 - 07:00:02 EST


Hi,
  These are probably not correct, as their behaviour depend on the HZ
value (maybe I have missed something) :

> diff -urN pre7-8/drivers/net/ariadne.c pre7-8.jw/drivers/net/ariadne.c
> --- pre7-8/drivers/net/ariadne.c Sun Feb 13 14:21:42 2000
> +++ pre7-8.jw/drivers/net/ariadne.c Wed May 10 05:20:26 2000
> @@ -548,8 +548,7 @@
>
> /* Transmitter timeout, serious problems. */
> if (dev->tbusy) {
> - int tickssofar = jiffies - dev->trans_start;
> - if (tickssofar < 20)
> + if (time_before(jiffies, dev->trans_start + 20))
                                                   20*HZ/100 ?
> return(1);
> lance->RAP = CSR0; /* PCnet-ISA Controller Status */
> printk("%s: transmit timed out, status %4.4x, resetting.\n", dev->name,
> diff -urN pre7-8/drivers/net/atarilance.c pre7-8.jw/drivers/net/atarilance.c
> --- pre7-8/drivers/net/atarilance.c Wed Aug 18 14:36:41 1999
> +++ pre7-8.jw/drivers/net/atarilance.c Wed May 10 05:20:54 2000
> @@ -723,8 +723,7 @@
>
> /* Transmitter timeout, serious problems. */
> if (dev->tbusy) {
> - int tickssofar = jiffies - dev->trans_start;
> - if (tickssofar < 20)
> + if (time_before(jiffies, dev->trans_start + 20))
                                                       20*HZ/100 ?
> return( 1 );
> AREG = CSR0;
> DPRINTK( 1, ( "%s: transmit timed out, status %04x, resetting.\n",
> diff -urN pre7-8/drivers/net/atp.c pre7-8.jw/drivers/net/atp.c
> --- pre7-8/drivers/net/atp.c Wed May 10 01:58:12 2000
> +++ pre7-8.jw/drivers/net/atp.c Wed May 10 04:24:58 2000
> @@ -548,7 +548,7 @@
> }
> num_tx_since_rx++;
> } else if (num_tx_since_rx > 8
> - && jiffies - dev->last_rx > 100) {
> + && time_after(jiffies, dev->last_rx + 100)) {
                                                                         HZ ?
> if (net_debug > 2)
> printk("%s: Missed packet? No Rx after %d Tx and %ld jiffies"
> " status %02x CMR1 %02x.\n", dev->name,
> diff -urN pre7-8/drivers/net/cs89x0.c pre7-8.jw/drivers/net/cs89x0.c
> --- pre7-8/drivers/net/cs89x0.c Wed May 10 01:58:12 2000
> +++ pre7-8.jw/drivers/net/cs89x0.c Wed May 10 04:24:05 2000
> @@ -285,7 +285,7 @@
> just in case EEPROM is ready when SI_BUSY in the
> PP_SelfST is clear */
> while(readreg(dev, PP_SelfST) & SI_BUSY)
> - if (jiffies - timeout >= 40)
> + if (time_after_eq(jiffies, timeout + 40))
                                                  40*HZ/100 ?
> return -1;
> return 0;
> }
> @@ -730,8 +730,8 @@
> }
> /* Wait until the chip is reset */
> reset_start_time = jiffies;
> - while( (readreg(dev, PP_SelfST) & INIT_DONE) == 0 && jiffies - reset_start_time < 2)
> - ;
> + while( (readreg(dev, PP_SelfST) & INIT_DONE) == 0 && time_before(jiffies, reset_start_time + 2))
                                                                   20*HZ/100 ?
> + /* nothing */;
> }
>
>
> @@ -751,8 +751,8 @@
> writereg(dev, PP_SelfCTL, selfcontrol);
>
> /* Wait for the DC/DC converter to power up - 500ms */
> - while (jiffies - timenow < HZ)
> - ;
> + while (time_before(jiffies, timenow + HZ))
> + /* nothing */;
       HZ means 1000ms. Either this or the comment above should be changed
>
> }
>
> @@ -780,8 +780,8 @@
> control_dc_dc(dev, 0);
>
> /* Delay for the hardware to work out if the TP cable is present - 150ms */
> - for (timenow = jiffies; jiffies - timenow < 15; )
> - ;
> + for (timenow = jiffies; time_before(jiffies, timenow + 15); )
                                                          15*HZ/100 ?
> + /* nothing */;
> if ((readreg(dev, PP_LineST) & LINK_OK) == 0)
> return DETECTED_NONE;
>
> @@ -822,7 +822,7 @@
> if ((lp->auto_neg_cnf & AUTO_NEG_BITS) == AUTO_NEG_ENABLE) {
> printk(KERN_INFO "%s: negotiating duplex...\n",dev->name);
> while (readreg(dev, PP_AutoNegST) & AUTO_NEG_BUSY) {
> - if (jiffies - timenow > 4000) {
> + if (time_after(jiffies, timenow + 4000)) {
                                                                  40*HZ ?
> printk(KERN_ERR "**** Full / half duplex auto-negotiation timed out ****\n");
> break;
> }
> @@ -855,10 +855,10 @@
> writeword(dev, TX_LEN_PORT, ETH_ZLEN);
>
> /* Test to see if the chip has allocated memory for the packet */
> - while (jiffies - timenow < 5)
> + while (time_before(jiffies, timenow + 5))
                                             5*HZ/100 ?
> if (readreg(dev, PP_BusST) & READY_FOR_TX_NOW)
> break;
> - if (jiffies - timenow >= 5)
> + if (time_after_eq(jiffies, timenow + 5))
                                             5*HZ/100 ?
> return 0; /* this shouldn't happen */
>
> /* Write the contents of the packet */
> @@ -866,7 +866,7 @@
>
> if (net_debug > 1) printk("Sending test packet ");
> /* wait a couple of jiffies for packet to be received */
> - for (timenow = jiffies; jiffies - timenow < 3; )
> + for (timenow = jiffies; time_before(jiffies, timenow + 3); )
                                                           3*HZ/100 ?
> ;
> if ((readreg(dev, PP_TxEvent) & TX_SEND_OK_BITS) == TX_OK) {
> if (net_debug > 1) printk("succeeded\n");
> diff -urN pre7-8/drivers/net/de600.c pre7-8.jw/drivers/net/de600.c
> --- pre7-8/drivers/net/de600.c Wed May 10 01:58:12 2000
> +++ pre7-8.jw/drivers/net/de600.c Wed May 10 04:49:50 2000
> @@ -401,19 +401,16 @@
> unsigned long flags;
> int transmit_from;
> int len;
> - int tickssofar;
> byte *buffer = skb->data;
>
> if (free_tx_pages <= 0) { /* Do timeouts, to avoid hangs. */
> - tickssofar = jiffies - dev->trans_start;
> -
> - if (tickssofar < 5)
> + if (time_before(jiffies, dev->trans_start + 5))
                                                           5*HZ/100 ?
> return 1;
>
> /* else */
> printk("%s: transmit timed out (%d), %s?\n",
> dev->name,
> - tickssofar,
> + jiffies - dev->trans_start,
> "network cable problem"
> );
> /* Restart the adapter. */
> diff -urN pre7-8/drivers/net/eexpress.c pre7-8.jw/drivers/net/eexpress.c
> --- pre7-8/drivers/net/eexpress.c Wed May 10 01:58:12 2000
> +++ pre7-8.jw/drivers/net/eexpress.c Wed May 10 04:47:19 2000
> @@ -504,7 +504,7 @@
>
> if (lp->started)
> {
> - if ((jiffies - dev->trans_start)>50)
> + if (time_after(jiffies, dev->trans_start + 50))
                                                          HZ/2 ?
> {
> if (lp->tx_link==lp->last_tx_restart)
> {
> @@ -560,7 +560,7 @@
> }
> else
> {
> - if ((jiffies-lp->init_time)>10)
> + if (time_after(jiffies, lp->init_time + 10))
                                                     10*HZ/100 ?
> {
> unsigned short status = scb_status(dev);
> printk(KERN_WARNING "%s: i82586 startup timed out, status %04x, resetting...\n",
> @@ -726,7 +726,7 @@
> static void eexp_cmd_clear(struct net_device *dev)
> {
> unsigned long int oldtime = jiffies;
> - while (scb_rdcmd(dev) && ((jiffies-oldtime)<10));
> + while (scb_rdcmd(dev) && time_before(jiffies, oldtime + 10));
                                                              10*HZ/100 ?
> if (scb_rdcmd(dev)) {
> printk("%s: command didn't clear\n", dev->name);
> }
> @@ -1605,7 +1605,7 @@
> #endif
> oj = jiffies;
> while ((SCB_CUstat(scb_status(dev)) == 2) &&
> - ((jiffies-oj) < 2000));
> + time_before(jiffies, oj + 2000));
                                                    2*HZ ?
> if (SCB_CUstat(scb_status(dev)) == 2)
> printk("%s: warning, CU didn't stop\n", dev->name);
> lp->started &= ~(STARTED_CU);
> diff -urN pre7-8/drivers/net/hydra.c pre7-8.jw/drivers/net/hydra.c
> --- pre7-8/drivers/net/hydra.c Sun Feb 13 14:21:42 2000
> +++ pre7-8.jw/drivers/net/hydra.c Wed May 10 05:19:12 2000
> @@ -441,8 +441,7 @@
>
> if(dev->tbusy)
> {
> - int tickssofar = jiffies - dev->trans_start;
> - if(tickssofar < 20)
> + if(time_before(jiffies, dev->trans_start + 20))
                                                          20*HZ/100 ?
> return(1);
> WRITE_REG(NIC_CR, CR_STOP);
> printk("%s: transmit timed out, status %4.4x, resetting.\n", dev->name, 0);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon May 15 2000 - 21:00:15 EST