When the list of free RX descriptors fills up completely, the consumed
authorpatrick <patrick@openbsd.org>
Wed, 7 Jul 2021 21:12:51 +0000 (21:12 +0000)
committerpatrick <patrick@openbsd.org>
Wed, 7 Jul 2021 21:12:51 +0000 (21:12 +0000)
commit81fd86580b9a42ebb051237ca298907020daf85d
treef8d4610090b9bd49773d54e04db467558df7a8f5
parentbaf715768bffa92c878b78653d9c82e7e7dc7978
When the list of free RX descriptors fills up completely, the consumed
and produced index are equal.  The RX refill operation did not refill
in that case, because it believed that this means there's nothing to
do.  In that case no RX buffers were allocated, and the RX descriptor
ring went dry forever.  Instead loop until we reach an empty freelist
entry.
sys/dev/fdt/if_mvpp.c