From owner-freebsd-current@FreeBSD.ORG Tue Dec 13 00:32:05 2005 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E606016A41F for ; Tue, 13 Dec 2005 00:32:05 +0000 (GMT) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 76F2E43D69 for ; Tue, 13 Dec 2005 00:32:05 +0000 (GMT) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com (localhost [127.0.0.1]) by apollo.backplane.com (8.13.4/8.13.4) with ESMTP id jBD0VY82011395; Mon, 12 Dec 2005 16:31:34 -0800 (PST) Received: (from dillon@localhost) by apollo.backplane.com (8.13.4/8.13.4/Submit) id jBD0VXih011394; Mon, 12 Dec 2005 16:31:33 -0800 (PST) Date: Mon, 12 Dec 2005 16:31:33 -0800 (PST) From: Matthew Dillon Message-Id: <200512130031.jBD0VXih011394@apollo.backplane.com> To: "Bjoern A. Zeeb" References: <20051209175607.C23668@maildrop.int.zabbadoz.net> <20051210125221.M23668@maildrop.int.zabbadoz.net> Cc: FreeBSD current mailing list Subject: Re: nve(4) patch - please test! X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Dec 2005 00:32:06 -0000 :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