Thread (35 messages) 35 messages, 4 authors, 2015-01-21

Re: [PATCH v3 04/16] virtio/console: verify device has config space

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2015-01-20 11:10:15
Also in: lkml

On Tue, Jan 20, 2015 at 04:10:40PM +0530, Amit Shah wrote:
On (Wed) 14 Jan 2015 [19:27:35], Michael S. Tsirkin wrote:
quoted
Some devices might not implement config space access
(e.g. remoteproc used not to - before 3.9).
virtio/console needs config space access so make it
fail gracefully if not there.
Do we know any such devices?  Wondering what prompted this patch.  If
it's just theoretical, I'd rather let it be like this, and pull this
in when there's a device that doesn't have config space.
Yes, with virtio 1.0 config space can be in a separate BAR now.  If
that's not enabled by BIOS (e.g. out of space), we won't have config
space.
Also, just the console functionality (i.e. F_MULTIPORT is unset) is
available w/o config space access.
Supporting this by gracefully disabling F_MULTIPORT
would require getting this info from driver before
features are finalized.
Alternatively, check F_MULTIPORT and only fail if set?
Let me know, I'll cook up a patch.
In fact, getting this patch in
would mean remoteproc wouldn't even run in its pre-config days...
It seems to have get callback unconditionally now - or did I miss
something?

quoted
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index de03df9..26afb56 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -1986,6 +1986,12 @@ static int virtcons_probe(struct virtio_device *vdev)
 	bool multiport;
 	bool early = early_put_chars != NULL;
 
+	if (!vdev->config->get) {
+		dev_err(&vdev->dev, "%s failure: config access disabled\n",
+			__func__);
+		return -EINVAL;
+	}
+

		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