[PATCH v3 00/10] hw/dma: Use dma_addr_t type definition when relevant

Philippe Mathieu-Daudé posted 10 patches 2 years, 2 months ago
Test checkpatch passed
Failed in applying to current master (apply log)
hw/rdma/rdma_utils.h   |  2 +-
include/hw/pci/pci.h   | 12 ++++++++++++
include/hw/scsi/scsi.h |  4 ++--
include/sysemu/dma.h   | 31 +++++++++++++++----------------
hw/ide/ahci.c          |  2 +-
hw/nvme/ctrl.c         |  2 +-
hw/rdma/rdma_utils.c   | 14 +++++++-------
hw/scsi/megasas.c      | 42 +++++++++++++++++++++++++-----------------
hw/scsi/scsi-bus.c     | 10 +++++-----
hw/scsi/scsi-disk.c    |  4 ++--
softmmu/dma-helpers.c  | 34 ++++++++++++++++++----------------
hw/nvram/meson.build   |  6 ++++--
hw/rdma/trace-events   |  2 +-
stubs/meson.build      |  4 ++--
14 files changed, 96 insertions(+), 73 deletions(-)
[PATCH v3 00/10] hw/dma: Use dma_addr_t type definition when relevant
Posted by Philippe Mathieu-Daudé 2 years, 2 months ago
Since v2:
- Split meson patch restricting fw_cfg (Richard)
- Reorder pci_dma_map() docstring (Peter, Richard)
- Move QEMUSGList in previous patch (David)
- Have dma_buf_read/dma_buf_write return dma_addr_t (Peter)
- Drop 'propagate MemTxResult' patch (David)
- Added R-b tags

Since v1:
- Addressed David review comment (stick to dma_addr_t type)
- Addressed Peter review comment (incorrect doc string)

Hi,

This series aims to clarify a bit the DMA API, in particular the
'size' argument which is not clear enough (as we use multiple types
for it). This helps avoiding build failures on 32-bit host [*] (and
likely overflows calculation too IMO).

Some units using the DMA API are first removed from user-mode
emulation to avoid build failure (they shouldn't be there in
the first place).

Then some variables are renamed for clarity (no functional change).

Finally we replace misuses with dma_addr_t typedef.

Regards,

Phil.

[*] https://www.mail-archive.com/qemu-devel@nongnu.org/msg858825.html

Philippe Mathieu-Daudé (10):
  stubs: Restrict fw_cfg to system emulation
  hw/nvram: Restrict fw_cfg QOM interface to sysemu and tools
  hw/pci: Restrict pci-bus stub to sysemu
  hw/pci: Document pci_dma_map()
  hw/dma: Remove CONFIG_USER_ONLY check
  hw/rdma/rdma_utils: Rename rdma_pci_dma_map 'len' argument
  hw/scsi: Rename SCSIRequest::resid as 'residual'
  hw/dma: Fix format string issues using dma_addr_t
  hw/dma: Move ScatterGatherEntry / QEMUSGList declarations around
  hw/dma: Use dma_addr_t type definition when relevant

 hw/rdma/rdma_utils.h   |  2 +-
 include/hw/pci/pci.h   | 12 ++++++++++++
 include/hw/scsi/scsi.h |  4 ++--
 include/sysemu/dma.h   | 31 +++++++++++++++----------------
 hw/ide/ahci.c          |  2 +-
 hw/nvme/ctrl.c         |  2 +-
 hw/rdma/rdma_utils.c   | 14 +++++++-------
 hw/scsi/megasas.c      | 42 +++++++++++++++++++++++++-----------------
 hw/scsi/scsi-bus.c     | 10 +++++-----
 hw/scsi/scsi-disk.c    |  4 ++--
 softmmu/dma-helpers.c  | 34 ++++++++++++++++++----------------
 hw/nvram/meson.build   |  6 ++++--
 hw/rdma/trace-events   |  2 +-
 stubs/meson.build      |  4 ++--
 14 files changed, 96 insertions(+), 73 deletions(-)

-- 
2.34.1

Re: [PATCH v3 00/10] hw/dma: Use dma_addr_t type definition when relevant
Posted by Peter Xu 2 years, 2 months ago
On Tue, Jan 11, 2022 at 07:42:59PM +0100, Philippe Mathieu-Daudé wrote:
> Since v2:
> - Split meson patch restricting fw_cfg (Richard)
> - Reorder pci_dma_map() docstring (Peter, Richard)
> - Move QEMUSGList in previous patch (David)
> - Have dma_buf_read/dma_buf_write return dma_addr_t (Peter)
> - Drop 'propagate MemTxResult' patch (David)
> - Added R-b tags

Reviewed-by: Peter Xu <peterx@redhat.com>

-- 
Peter Xu


Re: [PATCH v3 00/10] hw/dma: Use dma_addr_t type definition when relevant
Posted by Philippe Mathieu-Daudé via 2 years, 2 months ago
On 1/11/22 19:42, Philippe Mathieu-Daudé wrote:

> Philippe Mathieu-Daudé (10):
>   stubs: Restrict fw_cfg to system emulation
>   hw/nvram: Restrict fw_cfg QOM interface to sysemu and tools
>   hw/pci: Restrict pci-bus stub to sysemu
>   hw/pci: Document pci_dma_map()
>   hw/dma: Remove CONFIG_USER_ONLY check
>   hw/rdma/rdma_utils: Rename rdma_pci_dma_map 'len' argument
>   hw/scsi: Rename SCSIRequest::resid as 'residual'
>   hw/dma: Fix format string issues using dma_addr_t
>   hw/dma: Move ScatterGatherEntry / QEMUSGList declarations around
>   hw/dma: Use dma_addr_t type definition when relevant

Queued via memory-api.