On (Thu) 17 Jan 2013 [13:22:42], sjur.brandeland@xxxxxxxxxxxxxx wrote: > From: Sjur Brændeland <sjur.brandeland@xxxxxxxxxxxxxx> > > Allow rproc serial ports to receive data before the port > is connected. > > Rproc serial ports usually talk to very simple remote devices > with no control queue managing open/close events. So we must > let remote devices write to the virtio ring even if the device > is not yet fully initialized. > > Signed-off-by: Sjur Brændeland <sjur.brandeland@xxxxxxxxxxxxxx> > --- > > This patch is intended for v3.9. > > Thanks, > Sjur > > drivers/char/virtio_console.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c > index ee4dbea..c17b053 100644 > --- a/drivers/char/virtio_console.c > +++ b/drivers/char/virtio_console.c > @@ -1763,8 +1763,11 @@ static void in_intr(struct virtqueue *vq) > * tty is spawned) and the host sends out data to console > * ports. For generic serial ports, the host won't > * (shouldn't) send data till the guest is connected. > + * However a remote device might send data before the port is > + * connected. So don't remove data from a rproc_serial device. > */ > - if (!port->guest_connected) > + > + if (!port->guest_connected && !is_rproc_serial(port->portdev->vdev)) > discard_port_data(port); How about setting port->guest_connected = true in the init routines instead? Keeps this code path cleaner. That's what console ports do as well, in init_port_console(). Amit _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization