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);