Fix the rx refill timeout to only refill rings that are currently empty.
authorjmatthew <jmatthew@openbsd.org>
Sun, 6 Oct 2024 23:43:18 +0000 (23:43 +0000)
committerjmatthew <jmatthew@openbsd.org>
Sun, 6 Oct 2024 23:43:18 +0000 (23:43 +0000)
commit2783188a65d179771b59689a8006ab2b8e0f033a
tree84f2353b4d6f6f96957b6c1cd756052763086298
parenta704a667956955560432e63e1e235a2fd6664315
Fix the rx refill timeout to only refill rings that are currently empty.
This is normally how the timeout works, but in this driver it's complicated
by the use of separate rx and ag rings.

This prevents the refill timeout from operating on a ring concurrently
with an rx interrupt, which leads to corruption and crashes as experienced
by bluhm@

ok dlg@
earlier version tested by and ok bluhm@
sys/dev/pci/if_bnxt.c