mirror of https://github.com/xemu-project/xemu.git
block-backend: align max_transfer to request alignment
Block device requests must be aligned to bs->bl.request_alignment. It makes sense for drivers to align bs->bl.max_transfer the same way; however when there is no specified limit, blk_get_max_transfer just returns INT_MAX. Since the contract of the function does not specify that INT_MAX means "no maximum", just align the outcome of the function (whether INT_MAX or bs->bl.max_transfer) before returning it. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
c9797456f6
commit
b99f7fa08a
|
@ -1957,12 +1957,12 @@ uint32_t blk_get_request_alignment(BlockBackend *blk)
|
|||
uint32_t blk_get_max_transfer(BlockBackend *blk)
|
||||
{
|
||||
BlockDriverState *bs = blk_bs(blk);
|
||||
uint32_t max = 0;
|
||||
uint32_t max = INT_MAX;
|
||||
|
||||
if (bs) {
|
||||
max = bs->bl.max_transfer;
|
||||
max = MIN_NON_ZERO(max, bs->bl.max_transfer);
|
||||
}
|
||||
return MIN_NON_ZERO(max, INT_MAX);
|
||||
return ROUND_DOWN(max, blk_get_request_alignment(blk));
|
||||
}
|
||||
|
||||
int blk_get_max_iov(BlockBackend *blk)
|
||||
|
|
Loading…
Reference in New Issue