summaryrefslogtreecommitdiff
path: root/sys/arch/amd64
diff options
context:
space:
mode:
authorJonathan Matthew <jmatthew@cvs.openbsd.org>2016-05-05 23:01:29 +0000
committerJonathan Matthew <jmatthew@cvs.openbsd.org>2016-05-05 23:01:29 +0000
commited805419945cd4511c5ee0285db58d5af1f8dfc7 (patch)
tree703384cb0f56234066a11c1bc35c9c1528920d17 /sys/arch/amd64
parentcc666f0c7f30b46170a91ba3d68f5c210cc78798 (diff)
r1.10 of if_bnx.c effectively removed the limit on the number of segments in
the tx dma maps, apparently to allow heavily fragmented packets to be sent. The tx ring accounting in bnx_start assumed that the longest fragment chain we'd see was BNX_MAX_SEGMENTS, so sending a heavily fragmented packet when the ring was already full could cause it to overflow. In the 10 years since r1.10, we've started defragmenting packets if they won't fit in the dma map, so we can limit the maps to BNX_MAX_SEGMENTS again. While we're here, ensure there's always at least one slot on the tx ring free, for consistency between drivers. Fixes packet corruption seen by otto@ ok mpi@ dlg@
Diffstat (limited to 'sys/arch/amd64')
0 files changed, 0 insertions, 0 deletions