Index: sys/net/iflib.c =================================================================== --- sys/net/iflib.c +++ sys/net/iflib.c @@ -2031,6 +2031,12 @@ fl->ifl_pidx = idx; fl->ifl_credits = credits; } + + if (__predict_false(n != -1)) { + /* don't flush */ + return (IFLIB_RXEOF_EMPTY); + } + DBG_COUNTER_INC(rxd_flush); if (fl->ifl_pidx == 0) pidx = fl->ifl_size - 1; @@ -2044,7 +2050,7 @@ if (fl->ifl_fragidx == fl->ifl_size) fl->ifl_fragidx = 0; - return (n == -1 ? 0 : IFLIB_RXEOF_EMPTY); + return (0); } static __inline uint8_t