diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2015-01-12 15:23:37 +0100 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2015-01-21 06:58:47 +0100 |
commit | 8cab3cd6ad622f070b18cd1c2e3b97e1d3806629 (patch) | |
tree | da174ec64f4fd5321a32de13a0e4c0013b68372d /drivers/scsi | |
parent | virtio/net: verify device has config space (diff) | |
download | linux-8cab3cd6ad622f070b18cd1c2e3b97e1d3806629.tar.xz linux-8cab3cd6ad622f070b18cd1c2e3b97e1d3806629.zip |
virtio/scsi: verify device has config space
Some devices might not implement config space access
(e.g. remoteproc used not to - before 3.9).
virtio/scsi needs config space access so make it
fail gracefully if not there.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/virtio_scsi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c index c52bb5dfaedb..f164f24a4a55 100644 --- a/drivers/scsi/virtio_scsi.c +++ b/drivers/scsi/virtio_scsi.c @@ -950,6 +950,12 @@ static int virtscsi_probe(struct virtio_device *vdev) u32 num_queues; struct scsi_host_template *hostt; + if (!vdev->config->get) { + dev_err(&vdev->dev, "%s failure: config access disabled\n", + __func__); + return -EINVAL; + } + /* We need to know how many queues before we allocate. */ num_queues = virtscsi_config_get(vdev, num_queues) ? : 1; |