summaryrefslogtreecommitdiffstats
path: root/sys/dev/pdq
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2006-09-29 13:12:38 +0000
committerandre <andre@FreeBSD.org>2006-09-29 13:12:38 +0000
commitd066071e5efd02a0f61eba87a164fdc18b623b00 (patch)
treef6fe2edf88ae4bbda04cc10d81a615205d4e1da2 /sys/dev/pdq
parent8405ff182feb5e479edb4b36b3345b5e9c1c0d84 (diff)
downloadFreeBSD-src-d066071e5efd02a0f61eba87a164fdc18b623b00.zip
FreeBSD-src-d066071e5efd02a0f61eba87a164fdc18b623b00.tar.gz
Handle all error cases from bus_dmamap_load_mbuf_sg(). Those are:
- EFBIG means the mbuf chain was too long and bus_dma ran out of segments. Defragment the mbuf chain and try again. (Already existed, not changed.) - ENOMEM means bus_dma could not obtain enough bounce buffers at this point in time. Defer sending and try again later. - All other errors, in particular EINVAL, are fatal and prevent the mbuf chain from ever going through. Drop it and report error. - Checking (nsegs == 0) is unnecessary as bus_dmamap_load_mbuf_sg() always reports an error if it is < 1. This prevents broken packets from clogging the interface queue indefinately. Discussed with: scottl Reviewed by: jfv
Diffstat (limited to 'sys/dev/pdq')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud