[PULL 1/2] hw: m68k: virt: Add compat machine for 6.1

Laurent Vivier posted 2 patches 4 years, 3 months ago
Maintainers: Laurent Vivier <laurent@vivier.eu>
[PULL 1/2] hw: m68k: virt: Add compat machine for 6.1
Posted by Laurent Vivier 4 years, 3 months ago
Add the missing machine type for m68k/virt

Cc: qemu-stable@nongnu.org
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20211106194158.4068596-2-laurent@vivier.eu>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 hw/m68k/virt.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
index 4e8bce5aa6f7..0d9e3f83c169 100644
--- a/hw/m68k/virt.c
+++ b/hw/m68k/virt.c
@@ -304,7 +304,14 @@ type_init(virt_machine_register_types)
     } \
     type_init(machvirt_machine_##major##_##minor##_init);
 
+static void virt_machine_6_1_options(MachineClass *mc)
+{
+}
+DEFINE_VIRT_MACHINE(6, 1, true)
+
 static void virt_machine_6_0_options(MachineClass *mc)
 {
+    virt_machine_6_1_options(mc);
+    compat_props_add(mc->compat_props, hw_compat_6_0, hw_compat_6_0_len);
 }
-DEFINE_VIRT_MACHINE(6, 0, true)
+DEFINE_VIRT_MACHINE(6, 0, false)
-- 
2.31.1


Re: [PULL 1/2] hw: m68k: virt: Add compat machine for 6.1
Posted by BALATON Zoltan 4 years, 3 months ago
On Tue, 9 Nov 2021, Laurent Vivier wrote:
> Add the missing machine type for m68k/virt
>
> Cc: qemu-stable@nongnu.org
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> Message-Id: <20211106194158.4068596-2-laurent@vivier.eu>
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
> hw/m68k/virt.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/hw/m68k/virt.c b/hw/m68k/virt.c
> index 4e8bce5aa6f7..0d9e3f83c169 100644
> --- a/hw/m68k/virt.c
> +++ b/hw/m68k/virt.c
> @@ -304,7 +304,14 @@ type_init(virt_machine_register_types)
>     } \
>     type_init(machvirt_machine_##major##_##minor##_init);
>
> +static void virt_machine_6_1_options(MachineClass *mc)
> +{
> +}
> +DEFINE_VIRT_MACHINE(6, 1, true)
> +
> static void virt_machine_6_0_options(MachineClass *mc)
> {
> +    virt_machine_6_1_options(mc);
> +    compat_props_add(mc->compat_props, hw_compat_6_0, hw_compat_6_0_len);
> }
> -DEFINE_VIRT_MACHINE(6, 0, true)
> +DEFINE_VIRT_MACHINE(6, 0, false)

I don't understand how these compat machines work but if these are empty 
and essentially the same as the previous version why do we add a new 
version in every release? Wouldn't it be enough to add new version when 
there was an incompatible change? I mean, instead of listing machine and 
getting a lot of virt-6.1, virt-6.0, virt-5.2,... or so, we'd only get 
versions that are actually different such as virt-7.0, virt-5.2, virt-5.0 
(maybe they are called differently, just an example) with the versionless 
alias always pointing to the latest. Then when QEMU is updated one can see 
if there was any change so should update the VM or keep using the older 
versions. Or does it work like that and I'm missing it completely?

Regards,
BALATON Zoltan