Re: [PATCH] virtio_console: Add support for multiple ports forgeneric guest and host communication

From: Amit Shah
Date: Thu Oct 01 2009 - 04:49:02 EST


On (Thu) Oct 01 2009 [10:17:29], Christian Borntraeger wrote:
> Am Mittwoch 30 September 2009 19:13:21 schrieb Amit Shah:
> > On (Tue) Sep 29 2009 [15:31:23], Christian Borntraeger wrote:
> > > Am Dienstag 29 September 2009 15:09:50 schrieb Amit Shah:
> > > > Great, thanks. However I was thinking of moving this init to the
> > > > probe() routine instead of in the init_conosle routine just because
> > > > multiple consoles can be added and we don't want to init this each
> > > > time.. just once in probe is fine.
> > >
> > > If you have new patch CC me and I can give it a spin.
> >
> > Hey Christian,
> >
> > I have a new patch that changes a few things:
> > - moves the put_char fix to probe instead of doing it in
> > init_port_console(), which gets called on each console port found.
> > - uses port->id instead of a static hvc_vtermno to pass on a value to
> > hvc_alloc(). Motivation explained within comments in the code.
> > - A few other changes that introduce and make use of port->vcon instead
> > of accessing the static virtconsole directly -- aimed at easing future
> > fix to have multiple virtio-console devices.
> >
> > It would be great if you could test this.
>
> The basic stuff seems to work, but when I did a console resize I get:

...

> One of the config->get() related changes is probably wrong.

I see it. The following should fix it.

Amit

diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index 30361c1..b2de2df 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -822,9 +822,10 @@ static void tx_intr(struct virtqueue *vq)

static void config_intr(struct virtio_device *vdev)
{
- /* Handle port hot-add */
- schedule_work(&virtconsole.config_work);
-
+ if (use_multiport()) {
+ /* Handle port hot-add */
+ schedule_work(&virtconsole.config_work);
+ }
/* Handle console size changes */
virtcons_apply_config(vdev);
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/