[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 08/15] softmmu/memory: Log invalid memory accesses
From: |
Laurent Vivier |
Subject: |
[PULL 08/15] softmmu/memory: Log invalid memory accesses |
Date: |
Tue, 13 Oct 2020 08:53:06 +0200 |
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Log invalid memory accesses with as GUEST_ERROR.
This is particularly useful since commit 5d971f9e67 which reverted
("memory: accept mismatching sizes in memory_region_access_valid").
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20201005152725.2143444-1-philmd@redhat.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
softmmu/memory.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/softmmu/memory.c b/softmmu/memory.c
index fa280a19f7f7..403ff3abc99b 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -14,6 +14,7 @@
*/
#include "qemu/osdep.h"
+#include "qemu/log.h"
#include "qapi/error.h"
#include "cpu.h"
#include "exec/memory.h"
@@ -1353,10 +1354,18 @@ bool memory_region_access_valid(MemoryRegion *mr,
{
if (mr->ops->valid.accepts
&& !mr->ops->valid.accepts(mr->opaque, addr, size, is_write, attrs)) {
+ qemu_log_mask(LOG_GUEST_ERROR, "Invalid access at addr "
+ "0x%" HWADDR_PRIX ", size %u, "
+ "region '%s', reason: rejected\n",
+ addr, size, memory_region_name(mr));
return false;
}
if (!mr->ops->valid.unaligned && (addr & (size - 1))) {
+ qemu_log_mask(LOG_GUEST_ERROR, "Invalid access at addr "
+ "0x%" HWADDR_PRIX ", size %u, "
+ "region '%s', reason: unaligned\n",
+ addr, size, memory_region_name(mr));
return false;
}
@@ -1367,6 +1376,13 @@ bool memory_region_access_valid(MemoryRegion *mr,
if (size > mr->ops->valid.max_access_size
|| size < mr->ops->valid.min_access_size) {
+ qemu_log_mask(LOG_GUEST_ERROR, "Invalid access at addr "
+ "0x%" HWADDR_PRIX ", size %u, "
+ "region '%s', reason: invalid size "
+ "(min:%u max:%u)\n",
+ addr, size, memory_region_name(mr),
+ mr->ops->valid.min_access_size,
+ mr->ops->valid.max_access_size);
return false;
}
return true;
--
2.26.2
- [PULL 00/15] Trivial branch for 5.2 patches, Laurent Vivier, 2020/10/13
- [PULL 02/15] target/i386/cpu: Update comment that mentions Texinfo, Laurent Vivier, 2020/10/13
- [PULL 01/15] qemu-img-cmds.hx: Update comment that mentions Texinfo, Laurent Vivier, 2020/10/13
- [PULL 03/15] hw/rtc/twl92230: Silence warnings about missing fallthrough statements, Laurent Vivier, 2020/10/13
- [PULL 05/15] tests/test-char: Use a proper fallthrough comment, Laurent Vivier, 2020/10/13
- [PULL 09/15] hw/pci: Fix typo in PCI hot-plug error message, Laurent Vivier, 2020/10/13
- [PULL 10/15] block/blkdebug: fix memory leak, Laurent Vivier, 2020/10/13
- [PULL 08/15] softmmu/memory: Log invalid memory accesses,
Laurent Vivier <=
- [PULL 07/15] hw/acpi/piix4: Rename piix4_pm_add_propeties() to piix4_pm_add_properties(), Laurent Vivier, 2020/10/13
- [PULL 13/15] target/sparc/int32_helper: Remove duplicated 'Tag Overflow' entry, Laurent Vivier, 2020/10/13
- [PULL 12/15] goldfish_rtc: change MemoryRegionOps endianness to DEVICE_NATIVE_ENDIAN, Laurent Vivier, 2020/10/13
- [PULL 04/15] hw/block/nvme: Simplify timestamp sum, Laurent Vivier, 2020/10/13
- [PULL 14/15] mingw: fix error __USE_MINGW_ANSI_STDIO redefined, Laurent Vivier, 2020/10/13
- [PULL 11/15] hw/char/serial: remove duplicate .class_init in serial_mm_info, Laurent Vivier, 2020/10/13
- [PULL 06/15] vmdk: fix maybe uninitialized warnings, Laurent Vivier, 2020/10/13
- [PULL 15/15] meson.build: drop duplicate 'sparc64' entry, Laurent Vivier, 2020/10/13
- Re: [PULL 00/15] Trivial branch for 5.2 patches, Peter Maydell, 2020/10/13