Re: Correction: 2.6.16-git12 killed networking -- 3c900 card

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Andrew Morton

Patch applied to 2.6.16, timeouts remain. Will try the other also.

  > Pete Clements <[email protected]> wrote:
  > >
  > > Quoting Steffen Klassert
  > >   > >   Had several of these with git11
  > >   > >   NETDEV WATCHDOG: eth0: transmit timed out
  > >   > 
  > >   > Is this for sure that these messages occured first time with git11?
  > >   > There were no changes in the 3c59x driver between git10 and git11.
  > >   > 
  > > Tried 2.6.15 and could not get a timed out condition.  Looks like
  > > that defect is between 15 and 16 in my case.  
  > > 
  > > Be glad to do any testing that I can.
  > > 
  > 
  > Well here's one.  Steffen, please confirm.
  > 
  > 
  > From: Andrew Morton <[email protected]>
  > 
  > The pre-2.6.16 patch "3c59x collision statistics fix" accidentally caused
  > vortex_error() to not run iowrite16(TxEnable, ioaddr + EL3_CMD) if we got a
  > maxCollisions interrupt but MAX_COLLISION_RESET is not set.
  > 
  > Cc: Steffen Klassert <[email protected]>
  > Cc: Pete Clements <[email protected]>
  > Signed-off-by: Andrew Morton <[email protected]>
  > ---
  > 
  >  drivers/net/3c59x.c |   12 +++++-------
  >  1 files changed, 5 insertions(+), 7 deletions(-)
  > 
  > diff -puN drivers/net/3c59x.c~3c59x-collision-statistics-fix-fix drivers/net/3c59x.c
  > --- devel/drivers/net/3c59x.c~3c59x-collision-statistics-fix-fix	2006-03-28 22:36:48.000000000 -0800
  > +++ devel-akpm/drivers/net/3c59x.c	2006-03-28 22:40:01.000000000 -0800
  > @@ -2085,16 +2085,14 @@ vortex_error(struct net_device *dev, int
  >  		}
  >  		if (tx_status & 0x14)  vp->stats.tx_fifo_errors++;
  >  		if (tx_status & 0x38)  vp->stats.tx_aborted_errors++;
  > +		if (tx_status & 0x08)  vp->xstats.tx_max_collisions++;
  >  		iowrite8(0, ioaddr + TxStatus);
  >  		if (tx_status & 0x30) {			/* txJabber or txUnderrun */
  >  			do_tx_reset = 1;
  > -		} else if (tx_status & 0x08) {	/* maxCollisions */
  > -			vp->xstats.tx_max_collisions++;
  > -			if (vp->drv_flags & MAX_COLLISION_RESET) {
  > -				do_tx_reset = 1;
  > -				reset_mask = 0x0108;		/* Reset interface logic, but not download logic */
  > -			}
  > -		} else {						/* Merely re-enable the transmitter. */
  > +		} else if ((tx_status & 0x08) && (vp->drv_flags & MAX_COLLISION_RESET))  {	/* maxCollisions */
  > +			do_tx_reset = 1;
  > +			reset_mask = 0x0108;		/* Reset interface logic, but not download logic */
  > +		} else {				/* Merely re-enable the transmitter. */
  >  			iowrite16(TxEnable, ioaddr + EL3_CMD);
  >  		}
  >  	}
  > _
  > 


-- 
Pete Clements 
-
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/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux