virtio: don't require a config space on the console device.
authorRusty Russell <rusty@rustcorp.com.au>
Wed, 11 Feb 2015 04:31:14 +0000 (15:01 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Wed, 11 Feb 2015 04:33:17 +0000 (15:03 +1030)
Strictly, it's only needed when we have features (size or multiport).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
drivers/char/virtio_console.c

index 26afb56a807300026507fdf8624e8a597d1acdc0..fae2dbbf57459fe4f4ac01bb0415a02abbda9e18 100644 (file)
@@ -1986,7 +1986,10 @@ static int virtcons_probe(struct virtio_device *vdev)
        bool multiport;
        bool early = early_put_chars != NULL;
 
-       if (!vdev->config->get) {
+       /* We only need a config space if features are offered */
+       if (!vdev->config->get &&
+           (virtio_has_feature(vdev, VIRTIO_CONSOLE_F_SIZE)
+            || virtio_has_feature(vdev, VIRTIO_CONSOLE_F_MULTIPORT))) {
                dev_err(&vdev->dev, "%s failure: config access disabled\n",
                        __func__);
                return -EINVAL;