mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-22 11:17:19 +00:00
- Use more appropriate maxsize, nsegments and maxsegsize parameters
when creating the parent bus DMA tag. While at it correct the style and a nearby comment. - Take advantage of m_collapse(9) for performance reasons. MFC after: 2 weeks
This commit is contained in:
parent
f601da1ce8
commit
4eee14cb27
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=178578
@ -1894,16 +1894,10 @@ bge_dma_alloc(device_t dev)
|
||||
/*
|
||||
* Allocate the parent bus DMA tag appropriate for PCI.
|
||||
*/
|
||||
error = bus_dma_tag_create(bus_get_dma_tag(sc->bge_dev), /* parent */
|
||||
1, 0, /* alignment, boundary */
|
||||
BUS_SPACE_MAXADDR, /* lowaddr */
|
||||
BUS_SPACE_MAXADDR, /* highaddr */
|
||||
NULL, NULL, /* filter, filterarg */
|
||||
MAXBSIZE, BGE_NSEG_NEW, /* maxsize, nsegments */
|
||||
BUS_SPACE_MAXSIZE_32BIT, /* maxsegsize */
|
||||
0, /* flags */
|
||||
NULL, NULL, /* lockfunc, lockarg */
|
||||
&sc->bge_cdata.bge_parent_tag);
|
||||
error = bus_dma_tag_create(bus_get_dma_tag(sc->bge_dev),
|
||||
1, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL,
|
||||
NULL, BUS_SPACE_MAXSIZE_32BIT, 0, BUS_SPACE_MAXSIZE_32BIT,
|
||||
0, NULL, NULL, &sc->bge_cdata.bge_parent_tag);
|
||||
|
||||
if (error != 0) {
|
||||
device_printf(sc->bge_dev,
|
||||
@ -1912,7 +1906,7 @@ bge_dma_alloc(device_t dev)
|
||||
}
|
||||
|
||||
/*
|
||||
* Create tag for RX mbufs.
|
||||
* Create tag for mbufs.
|
||||
*/
|
||||
error = bus_dma_tag_create(sc->bge_cdata.bge_parent_tag, 1,
|
||||
0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL,
|
||||
@ -3402,7 +3396,7 @@ bge_encap(struct bge_softc *sc, struct mbuf **m_head, uint32_t *txidx)
|
||||
error = bus_dmamap_load_mbuf_sg(sc->bge_cdata.bge_mtag, map, m, segs,
|
||||
&nsegs, BUS_DMA_NOWAIT);
|
||||
if (error == EFBIG) {
|
||||
m = m_defrag(m, M_DONTWAIT);
|
||||
m = m_collapse(m, M_DONTWAIT, BGE_NSEG_NEW);
|
||||
if (m == NULL) {
|
||||
m_freem(*m_head);
|
||||
*m_head = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user