diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2015-01-12 16:23:37 +0200 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2015-01-21 16:28:45 +1030 |
commit | a4379fd841cc1af60ef495b8e5598b1f7327ec0c (patch) | |
tree | aa76c268d0ac57ed4a50b63bd694a9051af318fc /drivers/block | |
parent | 7754f53e944122fa95ef36039d3a5009910ce6fc (diff) |
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')
-rw-r--r-- | drivers/block/virtio_blk.c | 6 |
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) |