diff options
author | Mattias Nissler <122288598+mnissler-rivos@users.noreply.github.com> | 2024-01-24 18:19:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-24 17:19:41 +0000 |
commit | 6f6fdc58b78aa9698c116962a470a03f4292a477 (patch) | |
tree | 4e128fc16a701458a9721d52a65ff34ed4a44c12 /test | |
parent | c9effb42d7bbe8346bbb8110961c1e3640a69c23 (diff) | |
download | libvfio-user-6f6fdc58b78aa9698c116962a470a03f4292a477.zip libvfio-user-6f6fdc58b78aa9698c116962a470a03f4292a477.tar.gz libvfio-user-6f6fdc58b78aa9698c116962a470a03f4292a477.tar.bz2 |
Fix DMA message size calculation (#788)
When performing DMA via VFIO-user commands over the socket,
vfu_dma_transfer breaks large requests into chunks according to the
client's maximum data transfer size negotiated at connection setup time.
This change fixes the calculation of the chunk size for the case where
the last chunk is less than the maximum transfer size.
Unfortunately, the existing test didn't catch this due to the request
size being a multiple of that maximum data transfer size. Adjust the
test to make the last chunk size a true remainder.
Signed-off-by: Mattias Nissler <mnissler@rivosinc.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/py/test_sgl_read_write.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/test/py/test_sgl_read_write.py b/test/py/test_sgl_read_write.py index 2f4e992..2400080 100644 --- a/test/py/test_sgl_read_write.py +++ b/test/py/test_sgl_read_write.py @@ -156,7 +156,7 @@ def test_dma_read_write(): def test_dma_read_write_large(): ret, sg = vfu_addr_to_sgl(ctx, dma_addr=MAP_ADDR + 0x1000, - length=2 * PAGE_SIZE, + length=2 * PAGE_SIZE + 42, max_nr_sgs=1, prot=mmap.PROT_READ | mmap.PROT_WRITE) assert ret == 1 |