summaryrefslogtreecommitdiffstats
path: root/bin/sh
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2005-12-08 16:11:45 +0000
committerglebius <glebius@FreeBSD.org>2005-12-08 16:11:45 +0000
commit32bd4e565a3a4b0c4830285475d1acb39946ff70 (patch)
treefa5e6f16fea77fd4115ced5d9203bfa853cab714 /bin/sh
parentd6ef4fe5b252612d44020eecf6e3feb9b8233dd5 (diff)
downloadFreeBSD-src-32bd4e565a3a4b0c4830285475d1acb39946ff70.zip
FreeBSD-src-32bd4e565a3a4b0c4830285475d1acb39946ff70.tar.gz
A big rewrite of receive Jumbo frame handling. Remove the local Jumbo
cluster allocator, that wasn't MPSAFE. Instead, utilize our new generic UMA jumbo cluster allocator. Since UMA gives us a 9k piece that is contigous in virtual memory, but isn't contigous in physical memory we need to handle a few segments. To deal with this we utilize Tigon chip feature - extended RX descriptors, that can handle up to four DMA segments for one frame. Details: o Remove bge_alloc_jumbo_mem(), bge_free_jumbo_mem(), bge_jalloc(), bge_jfree() functions. o Remove SLIST heads, bge_jumbo_tag, bge_jumbo_map from softc. o Use extended RX BDs for Jumbo receive producer ring, and initialize it appropriately. o New bge_newbuf_jumbo(): - Allocate an mbuf with Jumbo cluster with help of m_cljget(). - Load the cluster for DMA with help of bus_dmamap_load_mbuf_sg(). - Assert that we got 3 segments in the DMA mapping. - Fill in these 3 segments into the extended RX descriptor.
Diffstat (limited to 'bin/sh')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud