re(4): Don't sync coherent memory
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Thu, 22 Jan 2009 12:13:07 +0000 (20:13 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Tue, 17 Feb 2009 10:35:26 +0000 (18:35 +0800)
sys/dev/netif/re/if_re.c

index 18cd6b6..a4a1866 100644 (file)
@@ -849,8 +849,6 @@ re_diag(struct re_softc *sc)
         * entry in the RX DMA ring. Grab it from there.
         */
 
-       bus_dmamap_sync(sc->re_ldata.re_rx_list_tag,
-                       sc->re_ldata.re_rx_list_map, BUS_DMASYNC_POSTREAD);
        bus_dmamap_sync(sc->re_ldata.re_rx_mtag, sc->re_ldata.re_rx_dmamap[0],
                        BUS_DMASYNC_POSTREAD);
        bus_dmamap_unload(sc->re_ldata.re_rx_mtag,
@@ -1239,8 +1237,7 @@ re_freemem(device_t dev)
 
        /* Unload and free the stats buffer and map */
        if (sc->re_ldata.re_stag) {
-               bus_dmamap_unload(sc->re_ldata.re_stag,
-                                 sc->re_ldata.re_rx_list_map);
+               bus_dmamap_unload(sc->re_ldata.re_stag, sc->re_ldata.re_smap);
                bus_dmamem_free(sc->re_ldata.re_stag,
                                sc->re_ldata.re_stats,
                                sc->re_ldata.re_smap);
@@ -1777,10 +1774,6 @@ re_tx_list_init(struct re_softc *sc)
 {
        bzero(sc->re_ldata.re_tx_list, RE_TX_LIST_SZ(sc));
 
-       /* Flush the TX descriptors */
-       bus_dmamap_sync(sc->re_ldata.re_tx_list_tag,
-                       sc->re_ldata.re_tx_list_map, BUS_DMASYNC_PREWRITE);
-
        sc->re_ldata.re_tx_prodidx = 0;
        sc->re_ldata.re_tx_considx = 0;
        sc->re_ldata.re_tx_free = sc->re_tx_desc_cnt;
@@ -1801,10 +1794,6 @@ re_rx_list_init(struct re_softc *sc)
                        return(error);
        }
 
-       /* Flush the RX descriptors */
-       bus_dmamap_sync(sc->re_ldata.re_rx_list_tag,
-                       sc->re_ldata.re_rx_list_map, BUS_DMASYNC_PREWRITE);
-
        sc->re_ldata.re_rx_prodidx = 0;
        sc->re_head = sc->re_tail = NULL;
 
@@ -1849,11 +1838,6 @@ re_rxeof(struct re_softc *sc)
        int i, total_len, rx = 0;
        struct mbuf_chain chain[MAXCPU];
 
-       /* Invalidate the descriptor memory */
-
-       bus_dmamap_sync(sc->re_ldata.re_rx_list_tag,
-                       sc->re_ldata.re_rx_list_map, BUS_DMASYNC_POSTREAD);
-
        ether_input_chain_init(chain);
 
        for (i = sc->re_ldata.re_rx_prodidx;
@@ -2007,11 +1991,6 @@ re_rxeof(struct re_softc *sc)
 
        ether_input_dispatch(chain);
 
-       /* Flush the RX DMA ring */
-
-       bus_dmamap_sync(sc->re_ldata.re_rx_list_tag,
-                       sc->re_ldata.re_rx_list_map, BUS_DMASYNC_PREWRITE);
-
        sc->re_ldata.re_rx_prodidx = i;
 
        return rx;
@@ -2028,10 +2007,6 @@ re_tx_collect(struct re_softc *sc)
        uint32_t txstat;
        int idx, tx = 0;
 
-       /* Invalidate the TX descriptor list */
-       bus_dmamap_sync(sc->re_ldata.re_tx_list_tag,
-                       sc->re_ldata.re_tx_list_map, BUS_DMASYNC_POSTREAD);
-
        for (idx = sc->re_ldata.re_tx_considx;
             sc->re_ldata.re_tx_free < sc->re_tx_desc_cnt;
             RE_TXDESC_INC(sc, idx)) {
@@ -2467,10 +2442,6 @@ re_start(struct ifnet *ifp)
        if (!need_trans)
                return;
 
-       /* Flush the TX descriptors */
-       bus_dmamap_sync(sc->re_ldata.re_tx_list_tag,
-                       sc->re_ldata.re_tx_list_map, BUS_DMASYNC_PREWRITE);
-
        sc->re_ldata.re_tx_prodidx = idx;
 
        /*