diff mbox

[PULL,v2,013/106] pc: exit QEMU if number of slots more than supported 256

Message ID 1403108034-32054-14-git-send-email-mst@redhat.com
State New
Headers show

Commit Message

Michael S. Tsirkin June 18, 2014, 4:16 p.m. UTC
From: Igor Mammedov <imammedo@redhat.com>

... which is imposed by current naming scheme of ACPI memory devices.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Acked-by: Peter Crosthwaite <peter.crostwaite@xilinx.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/acpi/acpi.h | 6 ++++++
 hw/i386/pc.c           | 6 ++++++
 2 files changed, 12 insertions(+)
diff mbox

Patch

diff --git a/include/hw/acpi/acpi.h b/include/hw/acpi/acpi.h
index a9fae9d..e93de6c 100644
--- a/include/hw/acpi/acpi.h
+++ b/include/hw/acpi/acpi.h
@@ -26,6 +26,12 @@ 
 #include "exec/memory.h"
 #include "hw/irq.h"
 
+/*
+ * current device naming scheme supports
+ * only upto 256 memory devices
+ */
+#define ACPI_MAX_RAM_SLOTS 256
+
 /* from linux include/acpi/actype.h */
 /* Default ACPI register widths */
 
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 6cdcb00..366e799 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1230,6 +1230,12 @@  FWCfgState *pc_memory_init(MemoryRegion *system_memory,
         ram_addr_t hotplug_mem_size =
             machine->maxram_size - ram_size;
 
+        if (machine->ram_slots > ACPI_MAX_RAM_SLOTS) {
+            error_report("unsupported amount of memory slots: %"PRIu64,
+                         machine->ram_slots);
+            exit(EXIT_FAILURE);
+        }
+
         pcms->hotplug_memory_base =
             ROUND_UP(0x100000000ULL + above_4g_mem_size, 1ULL << 30);