NetBSD-Bugs archive

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

Re: kern/38021: Tulip NIC "dribbling bit" and "CRC error"



The following reply was made to PR kern/38021; it has been noted by GNATS.

From: David Laight <david%l8s.co.uk@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: kern/38021: Tulip NIC "dribbling bit" and "CRC error"
Date: Fri, 29 Feb 2008 07:44:40 +0000

 On Thu, Feb 28, 2008 at 05:41:58PM -0800, Rich Wales wrote:
 > I've been running NetBSD 4.0 for the past two weeks with the following
 > patch to sys/dev/ic/tulipvar.h:
 > 
 > --- tulipvar.h.orig     2006-03-25 15:10:50.000000000 -0800
 > +++ tulipvar.h  2008-02-13 11:15:48.000000000 -0800
 > @@ -548,7 +548,7 @@
 >         __rxd->td_bufaddr2 =                                            \
 >             htole32(TULIP_CDRXADDR((sc), TULIP_NEXTRX((x))));           \
 >         __rxd->td_ctl =                                                 \
 > -           htole32((((__m->m_ext.ext_size - 1) & ~0x3U)                \
 > +           htole32((((__m->m_ext.ext_size - 2) & ~0x3U)                \
 >             << TDCTL_SIZE1_SHIFT) | (sc)->sc_tdctl_ch |                 \
 >             ((x) == (TULIP_NRXDESC - 1) ? sc->sc_tdctl_er : 0));        \
 >         __rxd->td_status = htole32(TDSTAT_OWN|TDSTAT_Rx_FS|TDSTAT_Rx_LS); \
 > 
 > and I haven't seen any more "CRC error" or "dribbling bit" errors.
 > 
 > Again, this problem was reported in 2000 (bug kern/10198), and some sort
 > of fix appears to have been incorporated into the source, but it didn't
 > really fix the problem, so I propose the above patch.
 
 Can you explain why this has any effect ?
 The comment above the code suggests that the '- 1' is there because
 ext_size was 2048 and it was being masked to zero (into 11 bits).
 Subtracting 1 and 2 both give 2044.
 
        David
 
 -- 
 David Laight: david%l8s.co.uk@localhost
 


Home | Main Index | Thread Index | Old Index