dma-helpers: Fix too long qiov
authorKevin Wolf <kwolf@redhat.com>
Wed, 9 Jul 2014 17:17:30 +0000 (19:17 +0200)
committerKevin Wolf <kwolf@redhat.com>
Mon, 14 Jul 2014 10:03:21 +0000 (12:03 +0200)
commit58f423fbd5f7f435e8dc56dfa565b043d20d1e1b
tree7d9178c0b85596d3ea4b2565ce1054e8213ce423
parent80504dcaa11097b99842312014f5954a54fe1826
dma-helpers: Fix too long qiov

If the size of the scatter/gather list isn't a multiple of 512, the
number of sectors for the block layer request is rounded down, resulting
in a qiov that doesn't match the request length. Truncate the qiov to the
new length of the request.

This fixes the IDE qtest case /x86_64/ide/bmdma/short_prdt.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
dma-helpers.c
include/qemu-common.h
util/iov.c