[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 03/30] trace: Avoid abuse of amdvi_mmio_read
From: |
Eric Blake |
Subject: |
[Qemu-devel] [PATCH v2 03/30] trace: Avoid abuse of amdvi_mmio_read |
Date: |
Mon, 13 Mar 2017 14:55:20 -0500 |
hw/i386/trace-events has an amdvi_mmio_read trace that is used for
both normal reads (listing the register name, address, size, and
offset) and for an error case (abusing the register name to show
an error message, the address to show the maximum value supported,
then shoehorning address and size into the size and offset
parameters). The change from a wide address to a narrower size
parameter could truncate a (rather-large) bogus read attempt, so
it's better to create a separate dedicated trace with correct types,
rather than abusing the trace mechanism. Broken since its
introduction in commit d29a09c.
Signed-off-by: Eric Blake <address@hidden>
---
hw/i386/amd_iommu.c | 3 +--
hw/i386/trace-events | 1 +
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c
index e0732cc..f86a40a 100644
--- a/hw/i386/amd_iommu.c
+++ b/hw/i386/amd_iommu.c
@@ -572,8 +572,7 @@ static uint64_t amdvi_mmio_read(void *opaque, hwaddr addr,
unsigned size)
uint64_t val = -1;
if (addr + size > AMDVI_MMIO_SIZE) {
- trace_amdvi_mmio_read("error: addr outside region: max ",
- (uint64_t)AMDVI_MMIO_SIZE, addr, size);
+ trace_amdvi_mmio_read_invalid(AMDVI_MMIO_SIZE, addr, size);
return (uint64_t)-1;
}
diff --git a/hw/i386/trace-events b/hw/i386/trace-events
index 88ad5e4..a213bfd 100644
--- a/hw/i386/trace-events
+++ b/hw/i386/trace-events
@@ -37,6 +37,7 @@ amdvi_cache_update(uint16_t domid, uint8_t bus, uint8_t slot,
uint8_t func, uint
amdvi_completion_wait_fail(uint64_t addr) "error: fail to write at address
0x%"PRIx64
amdvi_mmio_write(const char *reg, uint64_t addr, unsigned size, uint64_t val,
uint64_t offset) "%s write addr 0x%"PRIx64", size %u, val 0x%"PRIx64", offset
0x%"PRIx64
amdvi_mmio_read(const char *reg, uint64_t addr, unsigned size, uint64_t
offset) "%s read addr 0x%"PRIx64", size %u offset 0x%"PRIx64
+amdvi_mmio_read_invalid(int max, hwaddr addr, unsigned size) "error: addr
outside region (max 0x%x): read addr 0x%" HWADDR_PRIx ", size %u"
amdvi_command_error(uint64_t status) "error: Executing commands with command
buffer disabled 0x%"PRIx64
amdvi_command_read_fail(uint64_t addr, uint32_t head) "error: fail to access
memory at 0x%"PRIx64" + 0x%"PRIx32
amdvi_command_exec(uint32_t head, uint32_t tail, uint64_t buf) "command buffer
head at 0x%"PRIx32" command buffer tail at 0x%"PRIx32" command buffer base at
0x%"PRIx64
--
2.9.3
- [Qemu-devel] [PATCH for-2.9 v2 00/30] trace type mismatch cleanups, Eric Blake, 2017/03/13
- [Qemu-devel] [PATCH v2 01/30] trace: Fix backwards mirror_yield parameters, Eric Blake, 2017/03/13
- [Qemu-devel] [PATCH v2 02/30] trace: Fix incorrect megasas trace parameters, Eric Blake, 2017/03/13
- [Qemu-devel] [PATCH v2 03/30] trace: Avoid abuse of amdvi_mmio_read,
Eric Blake <=
- [Qemu-devel] [PATCH v2 05/30] trace: Fix parameter types in io, Eric Blake, 2017/03/13
- [Qemu-devel] [PATCH v2 06/30] trace: Fix parameter types in migration, Eric Blake, 2017/03/13
- Re: [Qemu-devel] [PATCH v2 06/30] trace: Fix parameter types in migration, Dr. David Alan Gilbert, 2017/03/13
- Re: [Qemu-devel] [PATCH v2 06/30] trace: Fix parameter types in migration, Eric Blake, 2017/03/13
- Re: [Qemu-devel] [PATCH v2 06/30] trace: Fix parameter types in migration, Dr. David Alan Gilbert, 2017/03/14
- Re: [Qemu-devel] [PATCH v2 06/30] trace: Fix parameter types in migration, Eric Blake, 2017/03/14
- Re: [Qemu-devel] [PATCH v2 06/30] trace: Fix parameter types in migration, Eric Blake, 2017/03/15
- Re: [Qemu-devel] [PATCH v2 06/30] trace: Fix parameter types in migration, Eric Blake, 2017/03/15