Author: raj
Date: Wed Feb 17 17:03:04 2010
New Revision: 204009
URL: http://svn.freebsd.org/changeset/base/204009

Log:
  Assorted fixes for mge(4).
  
  - Use proper map for the busdma sync on mge descriptor.
  - Remove unnecesary busdma sync.
  - Eliminate redundant locking in mge_reinit_rx() (just assert).
  - Kill unused variable.
  
  Submitted by: Grzegorz Bernacki
  Obtained from:        Semihalf
  MFC after:    1 week

Modified:
  head/sys/dev/mge/if_mge.c

Modified: head/sys/dev/mge/if_mge.c
==============================================================================
--- head/sys/dev/mge/if_mge.c   Wed Feb 17 16:45:03 2010        (r204008)
+++ head/sys/dev/mge/if_mge.c   Wed Feb 17 17:03:04 2010        (r204009)
@@ -457,10 +457,7 @@ mge_allocate_dma(struct mge_softc *sc)
 {
        int error;
        struct mge_desc_wrapper *dw;
-       int num, i;
-
-
-       num = MGE_TX_DESC_NUM + MGE_RX_DESC_NUM;
+       int i;
 
        /* Allocate a busdma tag and DMA safe memory for TX/RX descriptors. */
        error = bus_dma_tag_create(NULL,        /* parent */
@@ -543,7 +540,7 @@ mge_reinit_rx(struct mge_softc *sc)
        struct mge_desc_wrapper *dw;
        int i;
 
-       MGE_RECEIVE_LOCK(sc);
+       MGE_RECEIVE_LOCK_ASSERT(sc);
 
        mge_free_desc(sc, sc->mge_rx_desc, MGE_RX_DESC_NUM, sc->mge_rx_dtag, 1);
 
@@ -564,8 +561,6 @@ mge_reinit_rx(struct mge_softc *sc)
 
        /* Enable RX queue */
        MGE_WRITE(sc, MGE_RX_QUEUE_CMD, MGE_ENABLE_RXQ(MGE_RX_DEFAULT_QUEUE));
-
-       MGE_RECEIVE_UNLOCK(sc);
 }
 
 #ifdef DEVICE_POLLING
@@ -1375,9 +1370,6 @@ mge_encap(struct mge_softc *sc, struct m
        dw = &sc->mge_tx_desc[desc_no];
        mapp = dw->buffer_dmap;
 
-       bus_dmamap_sync(sc->mge_desc_dtag, mapp,
-           BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);
-
        /* Create mapping in DMA memory */
        error = bus_dmamap_load_mbuf_sg(sc->mge_tx_dtag, mapp, m0, segs, &nsegs,
            BUS_DMA_NOWAIT);
@@ -1401,7 +1393,7 @@ mge_encap(struct mge_softc *sc, struct m
                        mge_offload_setup_descriptor(sc, dw);
        }
 
-       bus_dmamap_sync(sc->mge_desc_dtag, mapp,
+       bus_dmamap_sync(sc->mge_desc_dtag, dw->desc_dmap,
            BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
 
        sc->tx_desc_curr = (++sc->tx_desc_curr) % MGE_TX_DESC_NUM;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to