nve(4) patch - please test!
Bjoern A. Zeeb
bzeeb-lists at lists.zabbadoz.net
Sat Dec 10 05:02:45 PST 2005
On Fri, 9 Dec 2005, Bjoern A. Zeeb wrote:
Hi,
> everyone out there who had only seen timeouts like
> nve0: device timeout (4)
> on nve and __never got it working at all__ please try this patch[1]
> which made my nve working from 0 to 99.
>
> I still can get timeouts by for example flood pinging another machine
> on the local LAN but it all recovers on it's own and I can work on
> that machine and do things like find / over ssh without losing
> connectivity. Fixing the timeouts will be another problem that needs
> to be addressed later.
After removing hw.physmem="3G" from my loader.conf of my 4GB RAM
machine I noticed that nve again was not working.
Anyone with >= 4GB RAM might want to try the updated version of the
patch which helps here.
[1] http://sources.zabbadoz.net/freebsd/patchset/nve-20051210-01.diff
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);
-
/* Update interface parameters */
ifp->if_drv_flags |= IFF_DRV_RUNNING;
ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
@@ -1306,7 +1306,7 @@ nve_osalloc(PNV_VOID ctx, PMEMORY_BLOCK
sc = (struct nve_softc *)ctx;
mem->pLogical = (PVOID)contigmalloc(mem->uiLength, M_DEVBUF,
- M_NOWAIT | M_ZERO, 0, ~0, PAGE_SIZE, 0);
+ M_NOWAIT | M_ZERO, 0, 0xffffffff, PAGE_SIZE, 0);
if (!mem->pLogical) {
device_printf(sc->dev, "memory allocation failed\n");
--
Bjoern A. Zeeb bzeeb at Zabbadoz dot NeT
More information about the freebsd-current
mailing list