diff options
author | adrian <adrian@FreeBSD.org> | 2014-10-11 22:13:24 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2014-10-11 22:13:24 +0000 |
commit | 7f559d779a9492c566771991039a750f92a94872 (patch) | |
tree | e09b30fda67ed2654cd86889fedf664f41b189d3 /sys/dev/e1000/e1000_defines.h | |
parent | 5995ee9a987472a09da2186b9ef8efe23d83907d (diff) | |
download | FreeBSD-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_defines.h')
0 files changed, 0 insertions, 0 deletions