Does this diff fix the issue?

Index: if_vge.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_vge.c,v
retrieving revision 1.48
diff -u -p -r1.48 if_vge.c
--- if_vge.c    27 Aug 2010 17:08:00 -0000      1.48
+++ if_vge.c    16 Dec 2010 10:52:53 -0000
@@ -915,6 +915,9 @@ vge_newbuf(struct vge_softc *sc, int idx
 #define VGE_RXCHUNK 4
        sc->vge_rx_consumed++;
        if (sc->vge_rx_consumed == VGE_RXCHUNK) {
+               bus_dmamap_sync(sc->sc_dmat, rxmap, 0,
+                   rxmap->dm_mapsize, BUS_DMASYNC_PREWRITE);
+
                for (i = idx; i != idx - sc->vge_rx_consumed; i--)
                        sc->vge_ldata.vge_rx_list[i].vge_sts |=
                            htole32(VGE_RDSTS_OWN);

Reply via email to