>
>
> >
> > BTW, I inherited a bug report for the same symptom:
> >
http://bugzilla.kernel.org/show_bug.cgi?id=3156
> >
> > thanks,
> > grant
> >
> > Signed-off-by: Grant Grundler
> >
> > --- linux-2.6.23/drivers/net/tulip/de2104x.c 2007-10-09 13:31:38.000000000
> > -0700 +++ linux-2.6.23/drivers/net/tulip/de2104x.c-ggg 2007-11-02
> > 23:24:46.000000000 -0700 @@ -842,7 +842,7 @@
> > static void de_stop_rxtx (struct de_private *de)
> > {
> > u32 macmode;
> > - unsigned int work = 1000;
> > + unsigned int i = 1300/100;
> >
> > macmode = dr32(MacMode);
> > if (macmode & RxTx) {
> > @@ -850,10 +850,14 @@
> > dr32(MacMode);
> > }
> >
> > - while (--work > 0) {
> > + /* wait until in-flight frame completes.
> > + * Max time @ 10BT: 1500*8b/10Mbps == 1200us (+ 100us margin)
> > + * Typically expect this loop to end in < 50 us on 100BT.
> > + */
> > + while (--i) {
> > if (!de_is_running(de))
> > return;
> > - cpu_relax();
> > + udelay(100);
> > }
> >
> > printk(KERN_WARNING "%s: timeout expired stopping DMA\n", de->dev->name);
>
>
>
> --
> Ondrej Zary