diff options
author | jhb <jhb@FreeBSD.org> | 2008-09-12 14:41:53 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2008-09-12 14:41:53 +0000 |
commit | 6ded760f17499dfd4b22eddbcccb63712cb9265a (patch) | |
tree | 34d69eaa7a8d258470891beddc01b8ff562d248b /sys/dev/tx/if_tx.c | |
parent | 0e5845a31bfd98e554b17ecf4fc99f40b7498c30 (diff) | |
download | FreeBSD-src-6ded760f17499dfd4b22eddbcccb63712cb9265a.zip FreeBSD-src-6ded760f17499dfd4b22eddbcccb63712cb9265a.tar.gz |
Use the parent device's DMA tag when creating our own DMA tags. This fixes
a panic on sparc64.
Reviewed by: Florian Smeets flo kasimir.com
Diffstat (limited to 'sys/dev/tx/if_tx.c')
-rw-r--r-- | sys/dev/tx/if_tx.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/sys/dev/tx/if_tx.c b/sys/dev/tx/if_tx.c index 5cef42e..033c22b 100644 --- a/sys/dev/tx/if_tx.c +++ b/sys/dev/tx/if_tx.c @@ -269,16 +269,17 @@ epic_attach(device_t dev) } /* Allocate DMA tags. */ - error = bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES * EPIC_MAX_FRAGS, - EPIC_MAX_FRAGS, MCLBYTES, 0, NULL, NULL, &sc->mtag); + error = bus_dma_tag_create(bus_get_dma_tag(dev), 4, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + MCLBYTES * EPIC_MAX_FRAGS, EPIC_MAX_FRAGS, MCLBYTES, 0, NULL, NULL, + &sc->mtag); if (error) { device_printf(dev, "couldn't allocate dma tag\n"); goto fail; } - error = bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, + error = bus_dma_tag_create(bus_get_dma_tag(dev), 4, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, sizeof(struct epic_rx_desc) * RX_RING_SIZE, 1, sizeof(struct epic_rx_desc) * RX_RING_SIZE, 0, NULL, NULL, &sc->rtag); @@ -287,8 +288,8 @@ epic_attach(device_t dev) goto fail; } - error = bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, + error = bus_dma_tag_create(bus_get_dma_tag(dev), 4, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, sizeof(struct epic_tx_desc) * TX_RING_SIZE, 1, sizeof(struct epic_tx_desc) * TX_RING_SIZE, 0, NULL, NULL, &sc->ttag); @@ -297,8 +298,8 @@ epic_attach(device_t dev) goto fail; } - error = bus_dma_tag_create(NULL, 4, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, + error = bus_dma_tag_create(bus_get_dma_tag(dev), 4, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, sizeof(struct epic_frag_list) * TX_RING_SIZE, 1, sizeof(struct epic_frag_list) * TX_RING_SIZE, 0, NULL, NULL, &sc->ftag); |