vmd(8): only add vionet tap read events after a notify event.
authordv <dv@openbsd.org>
Thu, 22 Feb 2024 02:38:53 +0000 (02:38 +0000)
committerdv <dv@openbsd.org>
Thu, 22 Feb 2024 02:38:53 +0000 (02:38 +0000)
commit6b07697f16d08a826bd89d0da7dfdbd37cac09e1
treeeb38bd1cd68484373c9868f516dbab5e195ce3cc
parent921b38ae7cad96cd63794313e77a458515d310da
vmd(8): only add vionet tap read events after a notify event.

My recent refactor introduced a bug where the vionet device will
add the tap(4) read event on an unpause regardless of driver and
device state, causing the cpu to peg as the read event fires
indefinitely because the guest's virtqueue isn't ready to receive
the data.

Add in a global flag that tracks if the rx-side is enabled or not
to coordinate adding the tap read event.

ok mlarkin@
usr.sbin/vmd/vionet.c