Re: nve(4) patch - please test!

From: Matthew Dillon <dillon_at_apollo.backplane.com>
Date: Mon, 12 Dec 2005 16:31:33 -0800 (PST)
: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
:_at__at_ -643,6 +643,10 _at__at_ 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 */ 
:_at__at_ -661,10 +665,6 _at__at_ 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
Received on Mon Dec 12 2005 - 23:32:05 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:49 UTC