qemu/backends
Gavin Shan 78c8f780d3 hostmem: Apply merge property after the memory region is initialized
The semantic change has been introduced by commit 5becdc0ab0 ("hostmem:
simplify the code for merge and dump properties") even it clarifies that
no senmatic change has been introduced. After the commit, the merge
property can be applied even the corresponding memory region isn't
initialized yet. This leads to crash dump by the following command
lines.

  # /home/gavin/sandbox/qemu.main/build/qemu-system-aarch64  \
    -accel kvm  -machine virt -cpu host                      \
    -object memory-backend-ram,id=mem-memN0,size=4096M,merge=off
    :
    qemu-system-aarch64: ../system/memory.c:2419: memory_region_get_ram_ptr: \
    Assertion `mr->ram_block' failed.

Fix it by applying the merge property only when the memory region is
initialized.

Message-ID: <20240915233117.478169-1-gshan@redhat.com>
Fixes: 5becdc0ab0 ("hostmem: simplify the code for merge and dump properties")
Reported-by: Zhenyu Zhang <zhenyzha@redhat.com>
Tested-by: Zhenyu Zhang <zhenyzha@redhat.com>
Signed-off-by: Gavin Shan <gshan@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
2024-09-24 11:33:35 +02:00
..
tpm backends/tpm: Remove newline character in trace event 2024-06-10 13:05:27 -04:00
confidential-guest-support.c confidential guest support: Introduce new confidential guest support class 2021-02-08 16:57:37 +11:00
cryptodev-builtin.c qapi/cryptodev: Rename QCryptodevBackendAlgType to *Algo, and drop prefix 2024-09-10 14:03:30 +02:00
cryptodev-hmp-cmds.c hmp: add cryptodev info command 2023-03-07 12:38:59 -05:00
cryptodev-lkcf.c qapi/cryptodev: Rename QCryptodevBackendAlgType to *Algo, and drop prefix 2024-09-10 14:03:30 +02:00
cryptodev-vhost-user.c qapi/cryptodev: Drop unwanted 'prefix' 2024-09-10 14:03:30 +02:00
cryptodev-vhost.c cryptodev: Introduce cryptodev.json 2023-03-07 12:38:59 -05:00
cryptodev.c qapi/cryptodev: Rename QCryptodevBackendAlgType to *Algo, and drop prefix 2024-09-10 14:03:30 +02:00
dbus-vmstate1.xml docs: move D-Bus VMState documentation to source XML 2021-12-21 10:50:21 +04:00
dbus-vmstate.c backends: Constify VMState 2023-12-30 07:38:06 +11:00
host_iommu_device.c backends: Introduce HostIOMMUDevice abstract 2024-06-24 23:15:30 +02:00
hostmem-epc.c backends/hostmem-epc: Get rid of qemu_open_old() 2024-07-17 14:04:15 +03:00
hostmem-file.c backends/hostmem: Report error when memory size is unaligned 2024-06-08 10:33:38 +02:00
hostmem-memfd.c backends/hostmem: Report error when memory size is unaligned 2024-06-08 10:33:38 +02:00
hostmem-ram.c HostMem: Add mechanism to opt in kvm guest memfd via MachineState 2024-04-23 17:35:25 +02:00
hostmem-shm.c hostmem: add a new memory backend based on POSIX shm_open() 2024-07-03 18:14:06 -04:00
hostmem.c hostmem: Apply merge property after the memory region is initialized 2024-09-24 11:33:35 +02:00
iommufd.c vfio/iommufd: Implement VFIOIOMMUClass::query_dirty_bitmap support 2024-07-23 17:14:52 +02:00
Kconfig backends: Initial support for SPDM socket support 2024-07-22 20:15:42 -04:00
meson.build backends: Initial support for SPDM socket support 2024-07-22 20:15:42 -04:00
rng-builtin.c replay: rng-builtin support 2021-02-08 15:15:32 +01:00
rng-egd.c backends: Improve error messages when property can no longer be set 2022-10-27 07:56:56 +02:00
rng-random.c backends/rng-random: Get rid of qemu_open_old() 2024-07-17 14:04:15 +03:00
rng.c error: Drop superfluous #include "qapi/qmp/qerror.h" 2023-02-23 13:56:14 +01:00
spdm-socket.c backends: Initial support for SPDM socket support 2024-07-22 20:15:42 -04:00
trace-events vfio/iommufd: Implement VFIOIOMMUClass::query_dirty_bitmap support 2024-07-23 17:14:52 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vhost-user.c backends/vhost-user: remove the ioeventfd check 2023-03-02 03:10:47 -05:00