Thread (39 messages) 39 messages, 2 authors, 2009-12-15

Re: [PATCH 09/28] virtio: console: struct ports for multiple ports per device.

From: Amit Shah <hidden>
Date: 2009-11-30 05:50:25

On (Mon) Nov 30 2009 [12:39:52], Rusty Russell wrote:
On Sat, 28 Nov 2009 05:20:32 pm Amit Shah wrote:
quoted
@@ -196,7 +216,9 @@ static void virtcons_apply_config(struct virtio_device *dev)
 		dev->config->get(dev,
 				 offsetof(struct virtio_console_config, rows),
 				 &ws.ws_row, sizeof(u16));
-		hvc_resize(port->hvc, ws);
+		/* This is the pre-multiport style: we use control messages
+		 * these days which specify the port.  So this means port 0. */
+		hvc_resize(find_port_by_vtermno(0)->hvc, ws);
 	}
We end up doing this in a couple of places; perhaps we should have something
like:
	/*
	 * Before multiple console support, we always had a single console.
	 * Code paths without those features can use this.
	 */
	static struct port *old_style_unique_console(void)
	{
		return find_port_by_vtermno(0);
	}
(Again) in a later patch, I rename the function to resize_console() and
call that one from the config interrupt as well as from the
hvc notifier.
quoted
 	err = -ENOMEM;
-	port = add_port(pdrvdata.next_vtermno);
+	port = kzalloc(sizeof *port, GFP_KERNEL);
 	if (!port)
 		goto fail;
I still dislike kzalloc.  I think I've said this before :)
I remember seeing it in another thread I think (or was it in a blog post
about you liking the ability to run it through valgrind?).

The init function becomes a bit longer in that case, since we'll have to
init all the known state. But I'm fine with that.

However, there's one exception: when allocating buffers, I'd prefer to
do a kzalloc() since the buffers are sent across the guest/host boundary
and we don't want to leak data in either direction.

(Just mentioning this again since it's the last comment: I'll respin the
series once you have a chance to review the other patches too.)

Also: if you think the approach is OK and give an ACK for the approach,
I can also proceed in parallel with the host bits for QEMU.

Thanks, Rusty!

		Amit
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help