Re: [PATCH] virtio_console: Let unconnected rproc device receive data.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux