"Michael S. Tsirkin" <m...@redhat.com> writes: > On Fri, Feb 06, 2015 at 03:36:56PM +1030, Rusty Russell wrote: >> 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) { > > I dislike nested ifs. How about > if (!vdev->config->get && ( > (virtio_has_feature(vdev, VIRTIO_CONSOLE_F_SIZE) > || virtio_has_feature(vdev, VIRTIO_CONSOLE_F_MULTIPORT))
OK, fixed. Thanks, Rusty. virtio: don't require a config space on the console device. Strictly, it's only needed when we have features (size or multiport). Signed-off-by: Rusty Russell <ru...@rustcorp.com.au> diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c index 26afb56a8073..fae2dbbf5745 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c @@ -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; -- 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/