if_cgem: Add volatile to rx/tx desc rings

This commit is contained in:
Sebastian Huber 2014-11-25 12:53:42 +01:00
parent 8c3823eed5
commit cd179c472b

View File

@ -123,7 +123,7 @@ struct cgem_softc {
bus_dma_tag_t mbuf_dma_tag; bus_dma_tag_t mbuf_dma_tag;
/* receive descriptor ring */ /* receive descriptor ring */
struct cgem_rx_desc *rxring; struct cgem_rx_desc volatile *rxring;
bus_addr_t rxring_physaddr; bus_addr_t rxring_physaddr;
struct mbuf *rxring_m[CGEM_NUM_RX_DESCS]; struct mbuf *rxring_m[CGEM_NUM_RX_DESCS];
bus_dmamap_t rxring_m_dmamap[CGEM_NUM_RX_DESCS]; bus_dmamap_t rxring_m_dmamap[CGEM_NUM_RX_DESCS];
@ -139,7 +139,7 @@ struct cgem_softc {
uint32_t rx_frames_prev; uint32_t rx_frames_prev;
/* transmit descriptor ring */ /* transmit descriptor ring */
struct cgem_tx_desc *txring; struct cgem_tx_desc volatile *txring;
bus_addr_t txring_physaddr; bus_addr_t txring_physaddr;
struct mbuf *txring_m[CGEM_NUM_TX_DESCS]; struct mbuf *txring_m[CGEM_NUM_TX_DESCS];
bus_dmamap_t txring_m_dmamap[CGEM_NUM_TX_DESCS]; bus_dmamap_t txring_m_dmamap[CGEM_NUM_TX_DESCS];
@ -1804,7 +1804,7 @@ cgem_detach(device_t dev)
bus_dmamap_unload(sc->desc_dma_tag, sc->rxring_dma_map); bus_dmamap_unload(sc->desc_dma_tag, sc->rxring_dma_map);
sc->rxring_physaddr = 0; sc->rxring_physaddr = 0;
} }
bus_dmamem_free(sc->desc_dma_tag, sc->rxring, bus_dmamem_free(sc->desc_dma_tag, __DEVOLATILE(void *, sc->rxring),
sc->rxring_dma_map); sc->rxring_dma_map);
sc->rxring = NULL; sc->rxring = NULL;
for (i = 0; i < CGEM_NUM_RX_DESCS; i++) for (i = 0; i < CGEM_NUM_RX_DESCS; i++)
@ -1819,7 +1819,7 @@ cgem_detach(device_t dev)
bus_dmamap_unload(sc->desc_dma_tag, sc->txring_dma_map); bus_dmamap_unload(sc->desc_dma_tag, sc->txring_dma_map);
sc->txring_physaddr = 0; sc->txring_physaddr = 0;
} }
bus_dmamem_free(sc->desc_dma_tag, sc->txring, bus_dmamem_free(sc->desc_dma_tag, __DEVOLATILE(void *, sc->txring),
sc->txring_dma_map); sc->txring_dma_map);
sc->txring = NULL; sc->txring = NULL;
for (i = 0; i < CGEM_NUM_TX_DESCS; i++) for (i = 0; i < CGEM_NUM_TX_DESCS; i++)