From c1b677aa80e4e30d2220fe5624c42ab6451b721b Mon Sep 17 00:00:00 2001 From: Scott Long Date: Tue, 8 Mar 2005 23:25:46 +0000 Subject: [PATCH] The DC driver asks for an alignment of PAGE_SIZE for data buffers, but also asks that each buffer be (2048 * 256) bytes long. I suspect that alignment isn't a real requirement since busdma only recently started honoring it. The size is also bogus. Fix both of these and stop busdma from trying to exhaust the system memory pool with bounce pages. Submitted by: Kevin Oberman MFC After: 7 days --- sys/dev/dc/if_dc.c | 6 +++--- sys/pci/if_dc.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c index b3394b91ed4..d4cba448cd5 100644 --- a/sys/dev/dc/if_dc.c +++ b/sys/dev/dc/if_dc.c @@ -2147,9 +2147,9 @@ dc_attach(device_t dev) } /* Allocate a busdma tag for mbufs. */ - error = bus_dma_tag_create(NULL, PAGE_SIZE, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES * DC_TX_LIST_CNT, - DC_TX_LIST_CNT, MCLBYTES, 0, NULL, NULL, &sc->dc_mtag); + error = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, + BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES DC_TX_LIST_CNT, MCLBYTES, + 0, NULL, NULL, &sc->dc_mtag); if (error) { printf("dc%d: failed to allocate busdma tag\n", unit); error = ENXIO; diff --git a/sys/pci/if_dc.c b/sys/pci/if_dc.c index b3394b91ed4..d4cba448cd5 100644 --- a/sys/pci/if_dc.c +++ b/sys/pci/if_dc.c @@ -2147,9 +2147,9 @@ dc_attach(device_t dev) } /* Allocate a busdma tag for mbufs. */ - error = bus_dma_tag_create(NULL, PAGE_SIZE, 0, BUS_SPACE_MAXADDR_32BIT, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES * DC_TX_LIST_CNT, - DC_TX_LIST_CNT, MCLBYTES, 0, NULL, NULL, &sc->dc_mtag); + error = bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, + BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES DC_TX_LIST_CNT, MCLBYTES, + 0, NULL, NULL, &sc->dc_mtag); if (error) { printf("dc%d: failed to allocate busdma tag\n", unit); error = ENXIO;