On Wed, Dec 10, 2025 at 3:58 PM Amit Shah <[email protected]> wrote: > > Both port_fops_write() and port_fops_poll() call will_write_block() for > checking the block condition -- which is whether port->outvq_full is > set. Even if buffers were consumed via poll, outvq_full should just > return false, right?
Yes, it would. However, the problem is that port_fops_write never gets to that part. It is stuck in wait_event_freezable(port->waitqueue). > Hm, does adding wake_up(port->waitqueue) in case 'ret' is false in > will_write_block() help? It would, but I think it only addresses half of the problem. The read path also calls reclaim_consumed_buffers. I've thrown together a patch which issues a wakeup from reclaim_consumed_buffers instead, which seems to work. Best Lorenz

