From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rusty Russell Subject: Re: [PATCH 1/2] virtio: console: Fix poll blocking even though there is data to read Date: Mon, 20 Sep 2010 12:19:33 +0930 Message-ID: <201009201219.34378.rusty@rustcorp.com.au> References: <6c7c2590a114d65ec52689be7cda7ada5ee876d5.1284628364.git.amit.shah@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <6c7c2590a114d65ec52689be7cda7ada5ee876d5.1284628364.git.amit.shah@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Amit Shah Cc: Hans de Goede , Virtualization List List-Id: virtualization@lists.linuxfoundation.org On Thu, 16 Sep 2010 06:43:08 pm Amit Shah wrote: > From: Hans de Goede > > I found this while working on a Linux agent for spice, the symptom I was > seeing was select blocking on the spice vdagent virtio serial port even > though there were messages queued up there. > > virtio_console's port_fops_poll checks port->inbuf != NULL to determine > if read won't block. However if an application reads enough bytes from > inbuf through port_fops_read, to empty the current port->inbuf, > port->inbuf will be NULL even though there may be buffers left in the > virtqueue. > > This causes poll() to block even though there is data to be read, > this patch fixes this by using will_read_block(port) instead of the > port->inbuf != NULL check. > > Signed-off-By: Hans de Goede > Signed-off-by: Amit Shah Thanks. I assume this one should go into stable too? Cheers, Rusty.