summaryrefslogtreecommitdiffstats
path: root/hw/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'hw/scsi')
-rw-r--r--hw/scsi/scsi-disk.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 387503e11b..8ce68a9dd6 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -2346,12 +2346,7 @@ static void scsi_realize(SCSIDevice *dev, Error **errp)
return;
}
- blkconf_blocksizes(&s->qdev.conf);
-
- if (s->qdev.conf.logical_block_size >
- s->qdev.conf.physical_block_size) {
- error_setg(errp,
- "logical_block_size > physical_block_size not supported");
+ if (!blkconf_blocksizes(&s->qdev.conf, errp)) {
return;
}
@@ -2436,7 +2431,9 @@ static void scsi_hd_realize(SCSIDevice *dev, Error **errp)
if (s->qdev.conf.blk) {
ctx = blk_get_aio_context(s->qdev.conf.blk);
aio_context_acquire(ctx);
- blkconf_blocksizes(&s->qdev.conf);
+ if (!blkconf_blocksizes(&s->qdev.conf, errp)) {
+ goto out;
+ }
}
s->qdev.blocksize = s->qdev.conf.logical_block_size;
s->qdev.type = TYPE_DISK;
@@ -2444,6 +2441,7 @@ static void scsi_hd_realize(SCSIDevice *dev, Error **errp)
s->product = g_strdup("QEMU HARDDISK");
}
scsi_realize(&s->qdev, errp);
+out:
if (ctx) {
aio_context_release(ctx);
}