diff options
author | Kevin Wolf <kwolf@redhat.com> | 2013-09-13 15:51:47 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2013-10-11 16:50:01 +0200 |
commit | 4f8a066b5fc254eeaabbbde56ba4f5b29cc68fdf (patch) | |
tree | caca58e5bd84ca7eaf74ed97b128ca966c29ba98 /hw/sd/sd.c | |
parent | 394c7d4d6bd06386308e2fef0cf1c613a10e0d23 (diff) | |
download | qemu-4f8a066b5fc254eeaabbbde56ba4f5b29cc68fdf.tar.gz qemu-4f8a066b5fc254eeaabbbde56ba4f5b29cc68fdf.tar.bz2 qemu-4f8a066b5fc254eeaabbbde56ba4f5b29cc68fdf.zip |
blockdev: Remove IF_* check for read-only blockdev_init
IF_NONE allows read-only, which makes forbidding it in this place
for other types pretty much pointless.
Instead, make sure that all devices for which the check would have
errored out check in their init function that they don't get a read-only
BlockDriverState. This catches even cases where IF_NONE and -device is
used.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'hw/sd/sd.c')
-rw-r--r-- | hw/sd/sd.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 346d86f69c..7380f063f7 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -494,6 +494,11 @@ SDState *sd_init(BlockDriverState *bs, bool is_spi) { SDState *sd; + if (bdrv_is_read_only(bs)) { + fprintf(stderr, "sd_init: Cannot use read-only drive\n"); + return NULL; + } + sd = (SDState *) g_malloc0(sizeof(SDState)); sd->buf = qemu_blockalign(bs, 512); sd->spi = is_spi; |