[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 3/5] hw/arm: Convert assertions about flash image size to err
From: |
David Edmondson |
Subject: |
[RFC PATCH 3/5] hw/arm: Convert assertions about flash image size to error_report |
Date: |
Mon, 16 Nov 2020 10:42:14 +0000 |
Rather than throwing an assertion, provide a more detailed report if a
flash image is inappropriately sized or aligned.
Signed-off-by: David Edmondson <david.edmondson@oracle.com>
---
hw/arm/virt.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 27dbeb549e..f9f10987dc 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -967,9 +967,21 @@ static void virt_flash_map1(PFlashCFI01 *flash,
MemoryRegion *sysmem)
{
DeviceState *dev = DEVICE(flash);
+ const char *name = blk_name(pflash_cfi01_get_blk(flash));
+
+ if (size == 0 || !QEMU_IS_ALIGNED(size, VIRT_FLASH_SECTOR_SIZE)) {
+ error_report("system firmware block device %s has invalid size "
+ "%" PRId64, name, size);
+ info_report("its size must be a non-zero multiple of 0x%" PRIx64,
+ VIRT_FLASH_SECTOR_SIZE);
+ exit(1);
+ }
+ if (!(size / VIRT_FLASH_SECTOR_SIZE <= UINT32_MAX)) {
+ error_report("system firmware block device %s is too large "
+ "(%" PRId64 ")", name, size);
+ exit(1);
+ }
- assert(QEMU_IS_ALIGNED(size, VIRT_FLASH_SECTOR_SIZE));
- assert(size / VIRT_FLASH_SECTOR_SIZE <= UINT32_MAX);
qdev_prop_set_uint32(dev, "num-blocks", size / VIRT_FLASH_SECTOR_SIZE);
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
--
2.28.0
- Re: [RFC PATCH 0/5] ARM: reduce the memory consumed when mapping UEFI flash images, (continued)
Re: [RFC PATCH 0/5] ARM: reduce the memory consumed when mapping UEFI flash images, David Edmondson, 2020/11/16
[RFC PATCH 5/5] hw/arm: Only minimise flash size on older machines, David Edmondson, 2020/11/16
[RFC PATCH 4/5] hw/arm: Flash image mapping follows image size, David Edmondson, 2020/11/16
[RFC PATCH 2/5] hw/block: Flash images can be smaller than the device, David Edmondson, 2020/11/16
[RFC PATCH 1/5] hw/block: blk_check_size_and_read_all should report backend name, David Edmondson, 2020/11/16
[RFC PATCH 3/5] hw/arm: Convert assertions about flash image size to error_report,
David Edmondson <=