Date: Fri, 29 Aug 2008 22:35:37 +0200 From: Marius Strobl <marius@alchemy.franken.de> To: Jacob Owens <jacoblowens@gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: lagg failover not automatic Message-ID: <20080829203537.GA83446@alchemy.franken.de> In-Reply-To: <c292b6660808282018ib6366f8iffdc3a977bd33385@mail.gmail.com> References: <c292b6660808082149m421d1a96q53d8a6934e11ed70@mail.gmail.com> <20080809082539.GC42339@cdnetworks.co.kr> <c292b6660808111801l7a584aa1r4aa6c324c3c9a1f7@mail.gmail.com> <20080812013739.GB54362@cdnetworks.co.kr> <c292b6660808120649s52dba0ct4d523f64062d597d@mail.gmail.com> <20080813044809.GD58659@cdnetworks.co.kr> <c292b6660808282018ib6366f8iffdc3a977bd33385@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Aug 28, 2008 at 10:18:28PM -0500, Jacob Owens wrote: > To resolve the issue, Pyun first had my patch amphy.c , then the dc driver. > The DC patch fixed my issue. Here is what i had to do: > > 1. save attached patch to /tmp > 2. #cd /usr/src > 3. #patch -p0 < /tmp/dc.patch > 4. rebuild/install kernel and reboot. i used instructions from here: > http://www.freebsdmadeeasy.com/tutorials/freebsd/recompiling-the-kernel-in-freebsd.php > > THANK YOU to Pyun YongHyeon and the freebsd-net group for helping me with > this issue!!! > > Save the text below and save as dc.patch. (The first line is 'index: > sys/dev/dc......' ,Last line is ' * When the init.....' > > Index: sys/dev/dc/if_dc.c > =================================================================== > --- sys/dev/dc/if_dc.c (revision 181654) > +++ sys/dev/dc/if_dc.c (working copy) > @@ -2868,6 +2868,12 @@ > ifp = sc->dc_ifp; > mii = device_get_softc(sc->dc_miibus); > > + /* > + * XXX Can cause autonegotiation failure on certain models > + * as DC21143 overdrive mii_ticks. > + */ > + mii_tick(mii); > + > if (sc->dc_flags & DC_REDUCED_MII_POLL) { > if (sc->dc_flags & DC_21143_NWAY) { > r = CSR_READ_4(sc, DC_10BTSTAT); > @@ -2881,19 +2887,15 @@ > sc->dc_link = 0; > mii_mediachg(mii); > } > - if (sc->dc_link == 0) > - mii_tick(mii); > } else { > r = CSR_READ_4(sc, DC_ISR); > if ((r & DC_ISR_RX_STATE) == DC_RXSTATE_WAIT && > sc->dc_cdata.dc_tx_cnt == 0) { > - mii_tick(mii); > if (!(mii->mii_media_status & IFM_ACTIVE)) > sc->dc_link = 0; > } > } > - } else > - mii_tick(mii); > + } > > /* > * When the init routine completes, we expect to be able to send For the records, a more appropriate fix (the above patch just lets dc(4) bypasse the DC_REDUCED_MII_POLL handling completely) was commited as r182461. Marius
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080829203537.GA83446>