PATCH: virtio_console: Fix poll blocking even though there is data to read (version 2)

Amit Shah
Thu, 16 Sep 2010 05:16:26 -0000

On (Wed) Sep 15 2010 [17:18:23], Hans de Goede wrote:
> diff -up linux-2.6.35.x86_64/drivers/char/virtio_console.c~
linux-2.6.35.x86_64/drivers/char/virtio_console.c
> --- linux-2.6.35.x86_64/drivers/char/virtio_console.c~	2010-08-02
00:11:14.000000000 +0200
> +++ linux-2.6.35.x86_64/drivers/char/virtio_console.c	2010-09-15
13:39:29.043505000 +0200
> @@ -642,7 +642,7 @@ static unsigned int port_fops_poll(struc
>  	poll_wait(filp, &port->waitqueue, wait);
>
>  	ret = 0;
> -	if (port->inbuf)
> +	if (port_has_data(port))
>  		ret |= POLLIN | POLLRDNORM;
>  	if (!will_write_block(port))
>  		ret |= POLLOUT;

Thanks, this works.

I'll send a git-formatted patch to Rusty.

		Amit