Strictly, it's only needed when we have features (size or multiport).

Signed-off-by: Rusty Russell <ru...@rustcorp.com.au>
---
 drivers/char/virtio_console.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index 26afb56a8073..8f182b0015b5 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -1986,10 +1986,14 @@ 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;
+       /* We only need a config space if features are offered */
+       if (virtio_has_feature(vdev, VIRTIO_CONSOLE_F_SIZE)
+           || virtio_has_feature(vdev, VIRTIO_CONSOLE_F_MULTIPORT)) {
+               if (!vdev->config->get) {
+                       dev_err(&vdev->dev, "%s failure: config access 
disabled\n",
+                               __func__);
+                       return -EINVAL;
+               }
        }
 
        /* Ensure to read early_put_chars now */
-- 
2.1.0

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

Reply via email to