summaryrefslogtreecommitdiffstats
path: root/sys/dev/e1000/e1000_82543.c
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2014-10-11 22:13:24 +0000
committeradrian <adrian@FreeBSD.org>2014-10-11 22:13:24 +0000
commit7f559d779a9492c566771991039a750f92a94872 (patch)
treee09b30fda67ed2654cd86889fedf664f41b189d3 /sys/dev/e1000/e1000_82543.c
parent5995ee9a987472a09da2186b9ef8efe23d83907d (diff)
downloadFreeBSD-src-7f559d779a9492c566771991039a750f92a94872.zip
FreeBSD-src-7f559d779a9492c566771991039a750f92a94872.tar.gz
MFC r271784 - Fix the handling of EOP in status descriptors for if_igb(4)
and don't double-free mbufs. Like ixgbe(4) chipsets, EOP is only set on the final descriptor in a chain of descriptors. So, to free the whole list of descriptors, we should free the current slot _and_ the assembled list of descriptors that make up the fragment list. The existing code was setting discard once it saw EOP + an error status; it then freed all the subsequent descriptors until the next EOP. That's totally the wrong order.
Diffstat (limited to 'sys/dev/e1000/e1000_82543.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud