aboutsummaryrefslogtreecommitdiff
path: root/contrib/libucl/lua/(developers-only)
diff options
context:
space:
mode:
authorR. Christian McDonald <rcm@FreeBSD.org>2026-10-19 01:06:41 +0000
committerR. Christian McDonald <rcm@FreeBSD.org>2026-10-19 01:06:41 +0000
commitbdaddb76ef1b9d5537f4a76cff01cdb4795804a4 (patch)
tree6989303cab75255920737f6644ec8ecd91f97107 /contrib/libucl/lua/(developers-only)
parentc78d70298edef4c599b503536d193caeb8204784 (diff)
iflib: Pass up the frames received before a descriptor errorHEADmain
When the driver's isc_rxd_pkt_get() fails part way through a receive pass, iflib_rxeof() jumps straight to the reset request. The frames it already took off the ring and chained for if_input() are neither passed up nor freed, so up to budget - 1 frames are lost and their mbufs and clusters leak on every such error, and the frames queued to LRO in the pass wait for the next one. Leave the loop instead, pass the chain up and flush LRO as on the normal exit, then request the reset as before, without refilling. The path is reachable from several drivers: igc, em, igb and ixgbe return EBADMSG for frames received with errors, which the hardware passes up only with store-bad-packets enabled; ixl, iavf and ice for every descriptor flagged RXE; aq, enetc, mgb and enic for descriptors they cannot use. Reviewed by: gallatin Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60805
Diffstat (limited to 'contrib/libucl/lua/(developers-only)')
0 files changed, 0 insertions, 0 deletions