summaryrefslogtreecommitdiffstats
path: root/hw/block/virtio-blk.c
diff options
context:
space:
mode:
authorPeter Lieven <pl@kamp.de>2015-02-06 11:54:11 +0100
committerKevin Wolf <kwolf@redhat.com>2015-02-06 17:24:22 +0100
commit75af1f34cd5b07c3c7fcf86dfc99a42de48a600d (patch)
tree701e882e64c3023a6e6b9fbd1a9547e5f2d8c5f9 /hw/block/virtio-blk.c
parent1ce52846d3ce0e4b58caebcae84719bef6401fbb (diff)
downloadhqemu-75af1f34cd5b07c3c7fcf86dfc99a42de48a600d.zip
hqemu-75af1f34cd5b07c3c7fcf86dfc99a42de48a600d.tar.gz
block: introduce BDRV_REQUEST_MAX_SECTORS
we check and adjust request sizes at several places with sometimes inconsistent checks or default values: INT_MAX INT_MAX >> BDRV_SECTOR_BITS UINT_MAX >> BDRV_SECTOR_BITS SIZE_MAX >> BDRV_SECTOR_BITS This patches introdocues a macro for the maximal allowed sectors per request and uses it at several places. Signed-off-by: Peter Lieven <pl@kamp.de> Reviewed-by: Denis V. Lunev <den@openvz.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/block/virtio-blk.c')
-rw-r--r--hw/block/virtio-blk.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index 8c51a29..1a8a176 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -381,7 +381,7 @@ void virtio_blk_submit_multireq(BlockBackend *blk, MultiReqBuffer *mrb)
}
max_xfer_len = blk_get_max_transfer_length(mrb->reqs[0]->dev->blk);
- max_xfer_len = MIN_NON_ZERO(max_xfer_len, INT_MAX);
+ max_xfer_len = MIN_NON_ZERO(max_xfer_len, BDRV_REQUEST_MAX_SECTORS);
qsort(mrb->reqs, mrb->num_reqs, sizeof(*mrb->reqs),
&multireq_compare);
@@ -447,7 +447,7 @@ static bool virtio_blk_sect_range_ok(VirtIOBlock *dev,
uint64_t nb_sectors = size >> BDRV_SECTOR_BITS;
uint64_t total_sectors;
- if (nb_sectors > INT_MAX) {
+ if (nb_sectors > BDRV_REQUEST_MAX_SECTORS) {
return false;
}
if (sector & dev->sector_mask) {
OpenPOWER on IntegriCloud