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