[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>
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 Laight: david%l8s.co.uk@localhost
Main Index |
Thread Index |