aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2024-06-20 17:57:39 +0100
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2024-07-02 06:58:37 +0200
commita391eeb129de8b0a9cb9fac4d3fbe5bd3a3cc6aa (patch)
tree7ca2e0f7f7a82cef91f0b295d2576e191c9d49e7
parent8d3122a80647673eee7a5166041a687dc9879a98 (diff)
downloadqemu-a391eeb129de8b0a9cb9fac4d3fbe5bd3a3cc6aa.zip
qemu-a391eeb129de8b0a9cb9fac4d3fbe5bd3a3cc6aa.tar.gz
qemu-a391eeb129de8b0a9cb9fac4d3fbe5bd3a3cc6aa.tar.bz2
hw: skip registration of outdated versioned machine types
This calls the MACHINE_VER_DELETION() macro in the machine type registration method, so that when a versioned machine type reaches the end of its life, it is no longer registered with QOM and thus cannot be used. The actual definition of the machine type should be deleted at this point, but experience shows that can easily be forgotten. By skipping registration the manual code deletion task can be done at any later date. Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20240620165742.1711389-12-berrange@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
-rw-r--r--hw/arm/virt.c1
-rw-r--r--hw/m68k/virt.c1
-rw-r--r--hw/ppc/spapr.c1
-rw-r--r--hw/s390x/s390-virtio-ccw.c1
-rw-r--r--include/hw/i386/pc.h1
5 files changed, 5 insertions, 0 deletions
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 02e13b4..b0c68d6 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -123,6 +123,7 @@ static void arm_virt_compat_set(MachineClass *mc)
}; \
static void MACHINE_VER_SYM(register, virt, __VA_ARGS__)(void) \
{ \
+ MACHINE_VER_DELETION(__VA_ARGS__); \
type_register_static(&MACHINE_VER_SYM(info, virt, __VA_ARGS__)); \
} \
type_init(MACHINE_VER_SYM(register, virt, __VA_ARGS__));
diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
index 37bb36b..cda199a 100644
--- a/hw/m68k/virt.c
+++ b/hw/m68k/virt.c
@@ -356,6 +356,7 @@ type_init(virt_machine_register_types)
}; \
static void MACHINE_VER_SYM(register, virt, __VA_ARGS__)(void) \
{ \
+ MACHINE_VER_DELETION(__VA_ARGS__); \
type_register_static(&MACHINE_VER_SYM(info, virt, __VA_ARGS__)); \
} \
type_init(MACHINE_VER_SYM(register, virt, __VA_ARGS__));
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 5526848..044e6a8 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -4824,6 +4824,7 @@ static void spapr_machine_latest_class_options(MachineClass *mc)
}; \
static void MACHINE_VER_SYM(register, spapr, __VA_ARGS__)(void) \
{ \
+ MACHINE_VER_DELETION(__VA_ARGS__); \
type_register(&MACHINE_VER_SYM(info, spapr, __VA_ARGS__)); \
} \
type_init(MACHINE_VER_SYM(register, spapr, __VA_ARGS__))
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index c25dc3e..336cb8c 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -847,6 +847,7 @@ static const TypeInfo ccw_machine_info = {
}; \
static void MACHINE_VER_SYM(register, ccw, __VA_ARGS__)(void) \
{ \
+ MACHINE_VER_DELETION(__VA_ARGS__); \
type_register_static(&MACHINE_VER_SYM(info, ccw, __VA_ARGS__)); \
} \
type_init(MACHINE_VER_SYM(register, ccw, __VA_ARGS__))
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index 83d2e66..4e55d7e 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -340,6 +340,7 @@ extern const size_t pc_compat_2_3_len;
}; \
static void MACHINE_VER_SYM(register, namesym, __VA_ARGS__)(void) \
{ \
+ MACHINE_VER_DELETION(__VA_ARGS__); \
type_register(&MACHINE_VER_SYM(info, namesym, __VA_ARGS__)); \
} \
type_init(MACHINE_VER_SYM(register, namesym, __VA_ARGS__));