|
From: | Philippe Mathieu-Daudé |
Subject: | Re: [PATCH v2] Avoid address_space_rw() with a constant is_write argument |
Date: | Thu, 20 Feb 2020 10:27:14 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
On 2/18/20 1:56 PM, Philippe Mathieu-Daudé wrote:
On 2/18/20 12:24 PM, Peter Maydell wrote: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/as-rw-const.patch.
Script is "scripts/coccinelle/as_rw_const.cocci". I plan to respin this patch (fixed) in a larger series.
Two lines in hw/net/dp8393x.c that Coccinelle produced that were over 80 characters were re-wrapped by hand. Signed-off-by: Peter Maydell <address@hidden> --- I could break this down into separate patches by submaintainer, but the patch is not that large and I would argue that it's better for the project if we can try to avoid introducing too much friction into the process of doing 'safe' tree-wide minor refactorings. v1->v2: put the coccinelle script in scripts/coccinelle rather than just in the commit message. --- accel/kvm/kvm-all.c | 6 +-- dma-helpers.c | 4 +- exec.c | 4 +- hw/dma/xlnx-zdma.c | 11 ++--- hw/net/dp8393x.c | 68 ++++++++++++++-------------- hw/net/i82596.c | 25 +++++----- hw/net/lasi_i82596.c | 5 +- hw/ppc/pnv_lpc.c | 8 ++-- hw/s390x/css.c | 12 ++--- qtest.c | 52 ++++++++++----------- target/i386/hvf/x86_mmu.c | 12 ++--- scripts/coccinelle/as_rw_const.cocci | 30 ++++++++++++ 12 files changed, 133 insertions(+), 104 deletions(-) create mode 100644 scripts/coccinelle/as_rw_const.cocci
[Prev in Thread] | Current Thread | [Next in Thread] |