From: "Daniel P. Berrangé" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Halil Pasic" <pasic@linux.ibm.com>,
devel@lists.libvirt.org,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Eric Farman" <farman@linux.ibm.com>,
qemu-s390x@nongnu.org,
"Richard Henderson" <richard.henderson@linaro.org>,
"Nicholas Piggin" <npiggin@gmail.com>,
"David Hildenbrand" <david@redhat.com>,
"Ilya Leoshkevich" <iii@linux.ibm.com>,
"David Gibson" <david@gibson.dropbear.id.au>,
qemu-arm@nongnu.org, "Cédric Le Goater" <clegoate@redhat.com>,
"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Daniel Henrique Barboza" <danielhb413@gmail.com>,
"Thomas Huth" <thuth@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Christian Borntraeger" <borntraeger@linux.ibm.com>,
"Laurent Vivier" <laurent@vivier.eu>,
qemu-ppc@nongnu.org, "Daniel P. Berrangé" <berrange@redhat.com>
Subject: [PATCH v2 11/14] hw: skip registration of outdated versioned machine types
Date: Thu, 20 Jun 2024 17:57:39 +0100 [thread overview]
Message-ID: <20240620165742.1711389-12-berrange@redhat.com> (raw)
In-Reply-To: <20240620165742.1711389-1-berrange@redhat.com>
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>
---
hw/arm/virt.c | 1 +
hw/m68k/virt.c | 1 +
hw/ppc/spapr.c | 1 +
hw/s390x/s390-virtio-ccw.c | 1 +
include/hw/i386/pc.h | 1 +
5 files changed, 5 insertions(+)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index ef6591d914..ab4a0d9ed6 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 37bb36b385..cda199af8f 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 55268489d3..044e6a8d9d 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 4cc7567872..0cb8c595a2 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -846,6 +846,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 83d2e66498..4e55d7ef6e 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__));
--
2.43.0
next prev parent reply other threads:[~2024-06-20 17:01 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-20 16:57 [PATCH v2 00/14] hw: define and enforce a standard lifecycle for versioned machines Daniel P. Berrangé
2024-06-20 16:57 ` [PATCH v2 01/14] include/hw: add helpers for defining versioned machine types Daniel P. Berrangé
2024-06-20 16:57 ` [PATCH v2 02/14] hw/arm: convert 'virt' machine definitions to use new macros Daniel P. Berrangé
2024-07-01 12:55 ` Philippe Mathieu-Daudé
2024-06-20 16:57 ` [PATCH v2 03/14] hw/s390x: convert 'ccw' " Daniel P. Berrangé
2024-07-01 12:53 ` Philippe Mathieu-Daudé
2024-06-20 16:57 ` [PATCH v2 04/14] hw/ppc: convert 'spapr' " Daniel P. Berrangé
2024-06-20 16:57 ` [PATCH v2 05/14] hw/m68k: convert 'virt' " Daniel P. Berrangé
2024-07-01 12:54 ` Philippe Mathieu-Daudé
2024-06-20 16:57 ` [PATCH v2 06/14] hw/i386: convert 'i440fx' " Daniel P. Berrangé
2024-07-01 9:11 ` Thomas Huth
2024-07-01 12:58 ` Philippe Mathieu-Daudé
2024-06-20 16:57 ` [PATCH v2 07/14] hw/i386: convert 'q35' " Daniel P. Berrangé
2024-07-01 9:14 ` Thomas Huth
2024-07-01 12:59 ` Philippe Mathieu-Daudé
2024-06-20 16:57 ` [PATCH v2 08/14] include/hw: add macros for deprecation & removal of versioned machines Daniel P. Berrangé
2024-07-01 15:13 ` Philippe Mathieu-Daudé
2024-06-20 16:57 ` [PATCH v2 09/14] include/hw: temporarily disable deletion of versioned machine types Daniel P. Berrangé
2024-06-20 17:18 ` Thomas Huth
2024-06-20 16:57 ` [PATCH v2 10/14] hw: set deprecation info for all " Daniel P. Berrangé
2024-07-01 11:20 ` Philippe Mathieu-Daudé
2024-06-20 16:57 ` Daniel P. Berrangé [this message]
2024-07-01 15:14 ` [PATCH v2 11/14] hw: skip registration of outdated " Philippe Mathieu-Daudé
2024-06-20 16:57 ` [PATCH v2 12/14] hw/ppc: remove obsolete manual deprecation reason string of spapr machines Daniel P. Berrangé
2024-07-01 11:20 ` Philippe Mathieu-Daudé
2024-06-20 16:57 ` [PATCH v2 13/14] hw/i386: remove obsolete manual deprecation reason string of i440fx machines Daniel P. Berrangé
2024-07-01 11:21 ` Philippe Mathieu-Daudé
2024-06-20 16:57 ` [PATCH v2 14/14] docs: document special exception for machine type deprecation & removal Daniel P. Berrangé
2024-07-01 15:15 ` Philippe Mathieu-Daudé
2024-07-01 15:41 ` [PATCH v2 00/14] hw: define and enforce a standard lifecycle for versioned machines Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240620165742.1711389-12-berrange@redhat.com \
--to=berrange@redhat.com \
--cc=borntraeger@linux.ibm.com \
--cc=clegoate@redhat.com \
--cc=danielhb413@gmail.com \
--cc=david@gibson.dropbear.id.au \
--cc=david@redhat.com \
--cc=devel@lists.libvirt.org \
--cc=eduardo@habkost.net \
--cc=farman@linux.ibm.com \
--cc=harshpb@linux.ibm.com \
--cc=iii@linux.ibm.com \
--cc=laurent@vivier.eu \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=npiggin@gmail.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
--cc=wangyanan55@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).