nve(4) patch - please test!
Matthew Dillon
dillon at apollo.backplane.com
Mon Dec 12 16:32:06 PST 2005
:Index: if_nve.c
:===================================================================
:RCS file: /shared/mirror/FreeBSD/r/ncvs/src/sys/dev/nve/if_nve.c,v
:retrieving revision 1.19
:diff -u -p -r1.19 if_nve.c
:--- if_nve.c 7 Dec 2005 17:38:03 -0000 1.19
:+++ if_nve.c 10 Dec 2005 12:53:06 -0000
:@@ -643,6 +643,10 @@ nve_init_locked(struct nve_softc *sc)
: nve_stop(sc);
: DEBUGOUT(NVE_DEBUG_INIT, "nve: do pfnInit\n");
:
:+ /* Setup multicast filter */
:+ nve_setmulti(sc);
:+ nve_ifmedia_upd_locked(ifp);
:+
: /* Setup Hardware interface and allocate memory structures */
: error = sc->hwapi->pfnInit(sc->hwapi->pADCX,
: 0, /* force speed */
:@@ -661,10 +665,6 @@ nve_init_locked(struct nve_softc *sc)
: sc->hwapi->pfnEnableInterrupts(sc->hwapi->pADCX);
: sc->hwapi->pfnStart(sc->hwapi->pADCX);
:
:- /* Setup multicast filter */
:- nve_setmulti(sc);
:- nve_ifmedia_upd_locked(ifp);
:-
This is very odd. I don't understand how making ABI calls prior
to calling pfnInit() would help matters. Perhaps the actual
problem was that the ABI calls were previously being made after
interrupts were enabled and after the device was started.
What happens if you move the setmulti and ifmedia calls to after
the pfnInit() call but before the pfnEnableInterrupts() and Start calls?
-Matt
More information about the freebsd-current
mailing list