On Mon, Dec 15, 2025, at 11:40, Lorenz Bauer wrote:
> + }
> + if (freed) {
> + /* We freed all used buffers. Issue a wake up so that other
> pending
> + * tasks do not get stuck. This is necessary because
> vring_interrupt()
> + * will drop wakeups from the host if there are no used buffers.
> + */
> port->outvq_full = false;
> + wake_up_interruptible(&port->waitqueue);
> }
Is it always enough to wake up only one waiter? From your
description it sounds like it might need wake_up_interruptible_all()
instead, but I may be misunderstanding the issue.
Arnd