xemu/hw
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
..
9pfs hw/9pfs/9p-synth: added directory for readdir test 2020-02-08 09:29:04 +01:00
acpi * Register qdev properties as class properties (Marc-André) 2020-01-27 09:44:04 +00:00
adc hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
alpha hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
arm Remove unnecessary cast when using the address_space API 2020-02-20 14:47:08 +01:00
audio add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
block hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
char hw/char/exynos4210_uart: Fix memleaks in exynos4210_uart_init 2020-02-13 14:14:55 +00:00
core qxl: introduce hardware revision 5 2020-02-13 08:31:40 +01:00
cpu qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
cris hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
display Remove unnecessary cast when using the cpu_[physical]_memory API 2020-02-20 14:47:08 +01:00
dma Avoid address_space_rw() with a constant is_write argument 2020-02-20 14:47:08 +01:00
gpio hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
hppa hw/hppa/Kconfig: LASI chipset requires PARALLEL port 2020-02-04 09:01:31 +01:00
hyperv add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
i2c aspeed/i2c: Prevent uninitialized warning 2020-02-06 11:13:24 +01:00
i386 hw/i386/vmmouse: Fix crash when using the vmmouse on a machine without vmport 2020-02-06 11:02:48 +01:00
ide hw/ide: Let the DMAIntFunc prototype use a boolean 'is_write' argument 2020-02-20 14:47:08 +01:00
input hw/input: Do not enable CONFIG_PCKBD by default 2020-02-04 09:01:31 +01:00
intc ppc/pnv: Add models for POWER8 PHB3 PCIe Host bridge 2020-02-02 14:07:57 +11:00
ipack qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
ipmi qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
isa hw/input: Do not enable CONFIG_PCKBD by default 2020-02-04 09:01:31 +01:00
lm32 hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
m68k hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
mem qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
microblaze hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
mips hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
misc i.MX: Fix inverted register bits in wdt code. 2020-02-13 14:14:52 +00:00
moxie hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
net Avoid address_space_rw() with a constant is_write argument 2020-02-20 14:47:08 +01:00
nios2 hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
nubus hw/m68k: add Nubus support 2019-10-28 19:06:47 +01:00
nvram hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
openrisc hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
pci qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pci-bridge qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pci-host ppc/pnv: change the PowerNV machine devices to be non user creatable 2020-02-02 14:07:57 +11:00
pcmcia hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
ppc Avoid address_space_rw() with a constant is_write argument 2020-02-20 14:47:08 +01:00
rdma qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
riscv riscv: virt: Use Goldfish RTC device 2020-02-10 12:01:38 -08:00
rtc hw: rtc: Add Goldfish RTC device 2020-02-10 12:01:37 -08:00
s390x Avoid address_space_rw() with a constant is_write argument 2020-02-20 14:47:08 +01:00
scsi Remove unnecessary cast when using the cpu_[physical]_memory API 2020-02-20 14:47:08 +01:00
sd hw: Remove unnecessary cast when calling dma_memory_read() 2020-02-20 14:47:08 +01:00
semihosting semihosting: add qemu_semihosting_console_inc for SYS_READC 2020-01-09 11:41:29 +00:00
sh4 sm501: make SerialMM a child, export chardev property 2020-01-07 17:24:29 +04:00
smbios hw/smbios/smbios: Remove unused include 2020-02-06 10:38:57 +01:00
sparc hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
sparc64 hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
ssi hw/*/Makefile.objs: Move many .o files to common-objs 2020-02-04 09:00:57 +01:00
timer stm32f2xx_timer: delay timer_new to avoid memleaks 2020-02-07 14:04:28 +00:00
tpm hw/ppc/Kconfig: Enable TPM_SPAPR as part of PSERIES config 2020-02-02 14:07:57 +11:00
tricore hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
unicore32 Include hw/irq.h a lot less 2019-08-16 13:31:52 +02:00
usb uas: fix super speed bMaxPacketSize0 2020-02-12 17:20:41 +01:00
vfio hw/vfio: Move the IGD quirk code to a separate file 2020-02-06 11:55:42 -07:00
virtio hw/virtio: Let vhost_memory_map() use a boolean 'is_write' argument 2020-02-20 14:47:08 +01:00
watchdog qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xen qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xenpv trivial: Remove xenfb_enabled from sysemu.h 2020-02-04 09:00:57 +01:00
xtensa hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
Kconfig Remove the core bluetooth code 2019-12-17 09:01:14 +01:00
Makefile.objs Remove the core bluetooth code 2019-12-17 09:01:14 +01:00