summaryrefslogtreecommitdiffstats
path: root/drivers/block/virtio_blk.c
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2015-01-12 15:23:37 +0100
committerRusty Russell <rusty@rustcorp.com.au>2015-01-21 06:58:45 +0100
commita4379fd841cc1af60ef495b8e5598b1f7327ec0c (patch)
treeaa76c268d0ac57ed4a50b63bd694a9051af318fc /drivers/block/virtio_blk.c
parentvirtio/9p: verify device has config space (diff)
downloadlinux-a4379fd841cc1af60ef495b8e5598b1f7327ec0c.tar.xz
linux-a4379fd841cc1af60ef495b8e5598b1f7327ec0c.zip
virtio/blk: verify device has config space
Some devices might not implement config space access (e.g. remoteproc used not to - before 3.9). virtio/blk 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/block/virtio_blk.c')
-rw-r--r--drivers/block/virtio_blk.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index cdfbd21e3597..b72c11a10f40 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -575,6 +575,12 @@ static int virtblk_probe(struct virtio_device *vdev)
u16 min_io_size;
u8 physical_block_exp, alignment_offset;
+ if (!vdev->config->get) {
+ dev_err(&vdev->dev, "%s failure: config access disabled\n",
+ __func__);
+ return -EINVAL;
+ }
+
err = ida_simple_get(&vd_index_ida, 0, minor_to_index(1 << MINORBITS),
GFP_KERNEL);
if (err < 0)