qemu/hw/core
Klaus Jensen 0b7ccfd1d2 hw/nvme: add machine compatibility parameter to enable msix exclusive bar
Commit 1901b4967c ("hw/block/nvme: move msix table and pba to BAR 0")
moved the MSI-X table and PBA to BAR 0 to make room for enabling CMR and
PMR at the same time. As reported by Julien Grall in #2184, this breaks
migration through system hibernation.

Add a machine compatibility parameter and set it on machines pre 6.0 to
enable the old behavior automatically, restoring the hibernation
migration support.

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2184
Fixes: 1901b4967c ("hw/block/nvme: move msix table and pba to BAR 0")
Reported-by: Julien Grall julien@xen.org
Tested-by: Julien Grall julien@xen.org
Reviewed-by: Jesper Wendel Devantier <foss@defmacro.it>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
(cherry picked from commit fa905f65c5)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-03-14 21:24:34 +03:00
..
bus.c qbus: Rename qbus_create() to qbus_new() 2021-09-30 13:44:08 +01:00
clock-vmstate.c clock-vmstate: Add missing END_OF_LIST 2022-03-02 18:12:40 +00:00
clock.c misc: fix commonly doubled up words 2022-08-01 11:58:02 +02:00
cpu-common.c include/hw/core: Create struct CPUJumpCache 2022-10-04 12:13:12 -07:00
cpu-sysemu.c hw/core/cpu-sysemu: used cached class in cpu_asidx_from_attrs 2022-10-03 20:53:30 -07:00
fw-path-provider.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
generic-loader.c hw/core/loader: return image sizes as ssize_t 2022-06-10 09:31:42 +10:00
gpio.c hw/qdev: Rename qdev_connect_gpio_out*() 'input_pin' parameter 2021-12-31 13:21:36 +01:00
guest-loader.c Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
guest-loader.h hw/core: implement a guest-loader to support static hypervisor guests 2021-03-10 15:34:11 +00:00
hotplug-stubs.c hw/core: Restrict hotplug to system emulation 2021-11-01 19:44:11 +01:00
hotplug.c call HotplugHandler->plug() as the last step in device realization 2018-10-19 13:44:12 +02:00
irq.c hw/core/irq: remove unused 'qemu_irq_split' function 2022-04-21 11:37:04 +01:00
Kconfig hw/core: Only build guest-loader if libfdt is available 2021-03-17 07:17:46 +00:00
loader-fit.c hw/mips/boston: Fix Lesser GPL version number 2020-11-03 16:51:13 +01:00
loader.c hw/core/loader: return image sizes as ssize_t 2022-06-10 09:31:42 +10:00
machine-hmp-cmds.c qapi/machine.json: Add cluster-id 2022-05-09 11:47:54 +01:00
machine-qmp-cmds.c qapi: introduce x-query-numa QMP command 2021-11-02 15:55:14 +00:00
machine-smp.c machine: Add helpers to get cores/threads per socket 2023-09-11 10:53:50 +03:00
machine.c hw/nvme: add machine compatibility parameter to enable msix exclusive bar 2024-03-14 21:24:34 +03:00
meson.build hw/core: Move the ARM sysbus-fdt to core 2022-04-29 10:48:26 +10:00
nmi.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
null-machine.c Do not include sysemu/sysemu.h if it's not really necessary 2021-05-02 17:24:50 +02:00
numa.c numa: use QLIST_FOREACH_SAFE() for RAM block notifiers 2022-10-26 14:56:42 -04:00
or-irq.c hw/core/or-irq: Fix incorrect assert forbidding num-lines == MAX_OR_LINES 2020-01-30 16:02:01 +00:00
platform-bus.c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
ptimer.c core/ptimers: Remove unnecessary 'sysemu/cpus.h' include 2022-02-21 10:18:06 +01:00
qdev-clock.c clock: Add ClockEvent parameter to callbacks 2021-03-08 17:20:01 +00:00
qdev-fw.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
qdev-hotplug.c hw/core: Extract hotplug-related functions to qdev-hotplug.c 2021-11-01 19:44:11 +01:00
qdev-prop-internal.h qdev: Make qdev_propinfo_get_uint16() static 2020-12-15 10:02:07 -05:00
qdev-properties-system.c net: Introduce NetClientInfo.check_peer_type() 2021-10-15 16:05:24 +02:00
qdev-properties.c qdev-properties: Add a new macro with bitmask check for uint64_t property 2022-05-14 12:32:41 +02:00
qdev.c module: add Error arguments to module_load and module_load_qom 2022-11-06 09:48:50 +01:00
register.c hw/core/register: Add more 64-bit utilities 2021-09-01 11:59:12 +10:00
reset.c reset: allow registering handlers that aren't called by snapshot loading 2022-10-27 11:34:31 +01:00
resettable.c hw/core/resettable: fix reset level counting 2022-10-27 10:27:23 +01:00
split-irq.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
stream.c hw/core/stream: Rename StreamSlave as StreamSink 2020-12-10 12:15:04 -05:00
sysbus-fdt.c hw/core: Tidy up unnecessary casting away of const 2022-10-22 22:50:27 +02:00
sysbus.c qbus: Rename qbus_create_inplace() to qbus_init() 2021-09-30 13:42:10 +01:00
trace-events clock: Provide builtin multiplier/divider 2021-09-01 11:08:19 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uboot_image.h hw/core: Sync uboot_image.h from U-Boot v2022.01 2022-05-24 10:38:50 +10:00
vm-change-state-handler.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
vmstate-if.c vmstate: add qom interface to get id 2020-01-06 18:41:32 +04:00