[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Stable-9.1.3 36/58] s390x/s390-virtio-ccw: don't crash on weird RAM siz
From: |
Michael Tokarev |
Subject: |
[Stable-9.1.3 36/58] s390x/s390-virtio-ccw: don't crash on weird RAM sizes |
Date: |
Mon, 27 Jan 2025 23:25:22 +0300 |
KVM is not happy when starting a VM with weird RAM sizes:
# qemu-system-s390x --enable-kvm --nographic -m 1234K
qemu-system-s390x: kvm_set_user_memory_region: KVM_SET_USER_MEMORY_REGION
failed, slot=0, start=0x0, size=0x244000: Invalid argument
kvm_set_phys_mem: error registering slot: Invalid argument
Aborted (core dumped)
Let's handle that in a better way by rejecting such weird RAM sizes
right from the start:
# qemu-system-s390x --enable-kvm --nographic -m 1234K
qemu-system-s390x: ram size must be multiples of 1 MiB
Message-ID: <20241219144115.2820241-2-david@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Janosch Frank <frankja@linux.ibm.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
(cherry picked from commit 14e568ab4836347481af2e334009c385f456a734)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index c483ff8064..5b055a8b25 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -180,6 +180,17 @@ static void s390_memory_init(MemoryRegion *ram)
{
MemoryRegion *sysmem = get_system_memory();
+ if (!QEMU_IS_ALIGNED(memory_region_size(ram), 1 * MiB)) {
+ /*
+ * SCLP cannot possibly expose smaller granularity right now and KVM
+ * cannot handle smaller granularity. As we don't support NUMA, the
+ * region size directly corresponds to machine->ram_size, and the
region
+ * is a single RAM memory region.
+ */
+ error_report("ram size must be multiples of 1 MiB");
+ exit(EXIT_FAILURE);
+ }
+
/* allocate RAM for core */
memory_region_add_subregion(sysmem, 0, ram);
--
2.39.5
- [Stable-9.1.3 29/58] roms: re-add edk2-basetools target, (continued)
- [Stable-9.1.3 29/58] roms: re-add edk2-basetools target, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 33/58] vhost-user: fix shared object return values, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 34/58] target/i386: Reset TSCs of parked vCPUs too on VM reset, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 35/58] hw/intc/riscv_aplic: Fix APLIC in_clrip and clripnum write emulation, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 40/58] target/i386/cpu: Fix notes for CPU models, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 43/58] migration: Fix parsing of s390 stream, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 37/58] config/targets: update aarch64_be-linux-user gdb XML list, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 39/58] docs: Correct release of TCG trace-events removal, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 23/58] hw/openrisc/openrisc_sim: keep serial@90000000 as default, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 41/58] migration: Add more error handling to analyze-migration.py, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 36/58] s390x/s390-virtio-ccw: don't crash on weird RAM sizes,
Michael Tokarev <=
- [Stable-9.1.3 42/58] migration: Remove unused argument in vmsd_desc_field_end, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 44/58] s390x: Fix CSS migration, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 45/58] migration: Rename vmstate_info_nullptr, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 46/58] migration: Dump correct JSON format for nullptr replacement, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 47/58] migration: Fix arrays of pointers in JSON writer, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 49/58] multifd: bugfix for incorrect migration data with QPL compression, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 50/58] tests/qtest/boot-serial-test: Correct HPPA machine name, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 38/58] target/loongarch: Use actual operand size with vbsrl check, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 48/58] multifd: bugfix for migration using compression methods, Michael Tokarev, 2025/01/28
- [Stable-9.1.3 53/58] pci: ensure valid link status bits for downstream ports, Michael Tokarev, 2025/01/28