Re: [PATCH 7/13] use cpu_relax() in busy loop

From: Arjan van de Ven
Date: Fri Sep 19 2003 - 02:40:58 EST


On Fri, 2003-09-19 at 01:35, Chris Wright wrote:
> Replace busy loop nop with cpu_relax().
>
> Jeff, here's a batch for net drivers. They all look pretty straight
> forward.
>
> ===== drivers/net/3c501.c 1.19 vs edited =====
> --- 1.19/drivers/net/3c501.c Tue Aug 26 13:21:28 2003
> +++ edited/drivers/net/3c501.c Thu Sep 18 11:30:18 2003
> @@ -251,7 +251,8 @@
> outb(0x00, AX_CMD);
>
> delay = jiffies + HZ/50;
> - while (time_before(jiffies, delay)) ;
> + while (time_before(jiffies, delay))
> + cpu_relax();
> autoirq = probe_irq_off(irq_mask);

mdelay()

>
> if (autoirq == 0)
> ===== drivers/net/3c505.c 1.25 vs edited =====
> --- 1.25/drivers/net/3c505.c Tue Aug 26 13:29:32 2003
> +++ edited/drivers/net/3c505.c Thu Sep 18 11:32:26 2003
> @@ -299,16 +299,20 @@
> }
> outb_control(adapter->hcr_val | ATTN | DIR, dev);
> timeout = jiffies + 1*HZ/100;
> - while (time_before_eq(jiffies, timeout));
> + while (time_before_eq(jiffies, timeout))
> + cpu_relax();

mdelay()

> timeout = jiffies + 1*HZ/100;
> - while (time_before_eq(jiffies, timeout));
> + while (time_before_eq(jiffies, timeout))
> + cpu_relax();

mdelay()

> outb_control(adapter->hcr_val | FLSH, dev);
> timeout = jiffies + 1*HZ/100;
> - while (time_before_eq(jiffies, timeout));
> + while (time_before_eq(jiffies, timeout))
> + cpu_relax();

mdelay()
> outb_control(adapter->hcr_val & ~FLSH, dev);
> timeout = jiffies + 1*HZ/100;
> - while (time_before_eq(jiffies, timeout));
> + while (time_before_eq(jiffies, timeout))
> + cpu_relax();
>

mdelay()
> ===== drivers/net/eepro.c 1.19 vs edited =====
> --- 1.19/drivers/net/eepro.c Tue Jul 15 10:01:29 2003
> +++ edited/drivers/net/eepro.c Thu Sep 18 11:33:52 2003
> @@ -904,7 +904,8 @@
> eepro_diag(ioaddr); /* RESET the 82595 */
>
> delay = jiffies + HZ/50;
> - while (time_before(jiffies, delay)) ;
> + while (time_before(jiffies, delay))
> + cpu_relax();

mdelay()
> ===== drivers/net/lance.c 1.18 vs edited =====
> --- 1.18/drivers/net/lance.c Sun Apr 20 22:41:09 2003
> +++ edited/drivers/net/lance.c Thu Sep 18 11:37:30 2003
> @@ -554,7 +554,8 @@
> outw(0x0041, ioaddr+LANCE_DATA);
>
> delay = jiffies + HZ/50;
> - while (time_before(jiffies, delay)) ;
> + while (time_before(jiffies, delay))
> + cpu_relax();

mdelay()


Attachment: signature.asc
Description: This is a digitally signed message part