qemu/hw/dma
Peter Maydell 19f7034773 Avoid address_space_rw() with a constant is_write argument
The address_space_rw() function allows either reads or writes
depending on the is_write argument passed to it; this is useful
when the direction of the access is determined programmatically
(as for instance when handling the KVM_EXIT_MMIO exit reason).
Under the hood it just calls either address_space_write() or
address_space_read_full().

We also use it a lot with a constant is_write argument, though,
which has two issues:
 * when reading "address_space_rw(..., 1)" this is less
   immediately clear to the reader as being a write than
   "address_space_write(...)"
 * calling address_space_rw() bypasses the optimization
   in address_space_read() that fast-paths reads of a
   fixed length

This commit was produced with the included Coccinelle script
scripts/coccinelle/exec_rw_const.cocci.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <20200218112457.22712-1-peter.maydell@linaro.org>
[PMD: Update macvm_set_cr0() reported by Laurent Vivier]
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2020-02-20 14:47:08 +01:00
..
bcm2835_dma.c bcm2835_dma: Re-initialize xlen in TD mode 2020-02-07 14:04:28 +00:00
etraxfs_dma.c Remove unnecessary cast when using the cpu_[physical]_memory API 2020-02-20 14:47:08 +01:00
i8257.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
i82374.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
Kconfig hw/core: Add a config switch for the "register" device 2019-08-20 09:11:05 +02:00
Makefile.objs hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
omap_dma.c hw/dma/omap_dma: Move switch 'fall through' comment to correct place 2019-08-21 10:55:23 +02:00
pl080.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pl330.c * Register qdev properties as class properties (Marc-André) 2020-01-27 09:44:04 +00:00
puv3_dma.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
pxa2xx_dma.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
rc4030.c hw/ide: Let the DMAIntFunc prototype use a boolean 'is_write' argument 2020-02-20 14:47:08 +01:00
soc_dma.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
sparc32_dma.c lance: replace PROP_PTR with PROP_LINK 2020-01-07 17:24:29 +04:00
trace-events dma/pl330: Convert to support tracing 2020-01-23 15:34:04 +00:00
xilinx_axidma.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xlnx_dpdma.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
xlnx-zdma.c Avoid address_space_rw() with a constant is_write argument 2020-02-20 14:47:08 +01:00
xlnx-zynq-devcfg.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00