diff options
author | Philippe Mathieu-Daudé | 2021-12-16 09:36:38 +0100 |
---|---|---|
committer | Philippe Mathieu-Daudé | 2022-01-18 12:56:29 +0100 |
commit | f02b664aad8f1aaafbcdf45285f6fcab0a4bd5d0 (patch) | |
tree | 74a5d84b75aaaf285161545e6188ef5327d144f4 /hw/ide | |
parent | hw/dma: Use dma_addr_t type definition when relevant (diff) | |
download | qemu-f02b664aad8f1aaafbcdf45285f6fcab0a4bd5d0.tar.gz qemu-f02b664aad8f1aaafbcdf45285f6fcab0a4bd5d0.tar.xz qemu-f02b664aad8f1aaafbcdf45285f6fcab0a4bd5d0.zip |
hw/dma: Let dma_buf_read() / dma_buf_write() propagate MemTxResult
Since commit 292e13142d2, dma_buf_rw() returns a MemTxResult type.
Do not discard it, return it to the caller. Pass the previously
returned value (the QEMUSGList residual size, which was rarely used)
as an optional argument.
With this new API, SCSIRequest::residual might now be accessed via
a pointer. Since the size_t type does not have the same size on
32 and 64-bit host architectures, convert it to a uint64_t, which
is big enough to hold the residual size, and the type is constant
on both 32/64-bit hosts.
Update the few dma_buf_read() / dma_buf_write() callers to the new
API.
Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Acked-by: Peter Xu <peterx@redhat.com>
Message-Id: <20220117125130.131828-1-f4bug@amsat.org>
Diffstat (limited to 'hw/ide')
-rw-r--r-- | hw/ide/ahci.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 6c727dd0c0..7ce001cacd 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1384,9 +1384,9 @@ static void ahci_pio_transfer(const IDEDMA *dma) const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED; if (is_write) { - dma_buf_write(s->data_ptr, size, &s->sg, attrs); + dma_buf_write(s->data_ptr, size, NULL, &s->sg, attrs); } else { - dma_buf_read(s->data_ptr, size, &s->sg, attrs); + dma_buf_read(s->data_ptr, size, NULL, &s->sg, attrs); } } @@ -1479,9 +1479,9 @@ static int ahci_dma_rw_buf(const IDEDMA *dma, bool is_write) } if (is_write) { - dma_buf_read(p, l, &s->sg, MEMTXATTRS_UNSPECIFIED); + dma_buf_read(p, l, NULL, &s->sg, MEMTXATTRS_UNSPECIFIED); } else { - dma_buf_write(p, l, &s->sg, MEMTXATTRS_UNSPECIFIED); + dma_buf_write(p, l, NULL, &s->sg, MEMTXATTRS_UNSPECIFIED); } /* free sglist, update byte count */ |