Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixl/ixl_txrx.c
Show First 20 Lines • Show All 510 Lines • ▼ Show 20 Lines | #endif | ||||
* are descriptors to reclaim */ | * are descriptors to reclaim */ | ||||
if (!clear) | if (!clear) | ||||
return (1); | return (1); | ||||
prev = txr->tx_cidx_processed; | prev = txr->tx_cidx_processed; | ||||
ntxd = scctx->isc_ntxd[0]; | ntxd = scctx->isc_ntxd[0]; | ||||
do { | do { | ||||
delta = (int32_t)cur - (int32_t)prev; | delta = (int32_t)cur - (int32_t)prev; | ||||
/* | |||||
* XXX This appears to be a hack for first-packet. | |||||
* A correct fix would prevent prev == cur in the first place. | |||||
*/ | |||||
MPASS(prev == 0 || delta != 0); | MPASS(prev == 0 || delta != 0); | ||||
if (prev == 0 && cur == 0) | |||||
delta += 1; | |||||
if (delta < 0) | if (delta < 0) | ||||
delta += ntxd; | delta += ntxd; | ||||
#if 0 | #if 0 | ||||
device_printf(iflib_get_dev(vsi->ctx), | device_printf(iflib_get_dev(vsi->ctx), | ||||
"%s: (q%d) cidx_processed=%u cur=%u clear=%d delta=%d\n", | "%s: (q%d) cidx_processed=%u cur=%u clear=%d delta=%d\n", | ||||
__func__, txr->me, prev, cur, clear, delta); | __func__, txr->me, prev, cur, clear, delta); | ||||
#endif | #endif | ||||
processed += delta; | processed += delta; | ||||
▲ Show 20 Lines • Show All 427 Lines • Show Last 20 Lines |