mbox series

[v3,00/19] hw/i386/pc: Remove deprecated 2.4 and 2.5 PC machines

Message ID 20250506143905.4961-1-philmd@linaro.org
Headers show
Series hw/i386/pc: Remove deprecated 2.4 and 2.5 PC machines | expand

Message

Philippe Mathieu-Daudé May 6, 2025, 2:38 p.m. UTC
(series reviewed)

Since v2:
- Removed qtest in test-x86-cpuid-compat.c

Since v1:
- Fixed issues noticed by Thomas

The versioned 'pc' and 'q35' machines up to 2.12 been marked
as deprecated two releases ago, and are older than 6 years,
so according to our support policy we can remove them.

This series only includes the 2.4 and 2.5 machines removal,
as it is a big enough number of LoC removed. Rest will
follow. Highlight is the legacy fw_cfg API removal :)

Philippe Mathieu-Daudé (19):
  hw/i386/pc: Remove deprecated pc-q35-2.4 and pc-i440fx-2.4 machines
  hw/i386/pc: Remove PCMachineClass::broken_reserved_end field
  hw/i386/pc: Remove pc_compat_2_4[] array
  target/i386/cpu: Remove X86CPU::check_cpuid field
  hw/core/machine: Remove hw_compat_2_4[] array
  hw/net/e1000: Remove unused E1000_FLAG_MAC flag
  hw/virtio/virtio-pci: Remove VIRTIO_PCI_FLAG_MIGRATE_EXTRA definition
  hw/virtio/virtio-pci: Remove VIRTIO_PCI_FLAG_DISABLE_PCIE definition
  hw/i386/pc: Remove deprecated pc-q35-2.5 and pc-i440fx-2.5 machines
  hw/i386/x86: Remove X86MachineClass::save_tsc_khz field
  hw/nvram/fw_cfg: Remove legacy FW_CFG_ORDER_OVERRIDE
  hw/core/machine: Remove hw_compat_2_5[] array
  hw/block/fdc-isa: Remove 'fallback' property
  hw/scsi/vmw_pvscsi: Remove PVSCSI_COMPAT_OLD_PCI_CONFIGURATION
    definition
  hw/scsi/vmw_pvscsi: Remove PVSCSI_COMPAT_DISABLE_PCIE_BIT definition
  hw/scsi/vmw_pvscsi: Convert DeviceRealize -> InstanceInit
  hw/net/vmxnet3: Remove VMXNET3_COMPAT_FLAG_OLD_MSI_OFFSETS definition
  hw/net/vmxnet3: Remove VMXNET3_COMPAT_FLAG_DISABLE_PCIE definition
  hw/net/vmxnet3: Merge DeviceRealize in InstanceInit

 include/hw/boards.h                 |   9 +--
 include/hw/i386/pc.h                |   7 --
 include/hw/i386/x86.h               |   5 --
 include/hw/loader.h                 |   2 -
 include/hw/nvram/fw_cfg.h           |  10 ---
 include/hw/virtio/virtio-pci.h      |   8 --
 target/i386/cpu.h                   |   1 -
 hw/block/fdc-isa.c                  |   4 +-
 hw/core/loader.c                    |  14 ----
 hw/core/machine.c                   |  18 -----
 hw/i386/pc.c                        |  42 ++---------
 hw/i386/pc_piix.c                   |  26 -------
 hw/i386/pc_q35.c                    |  26 -------
 hw/i386/x86.c                       |   1 -
 hw/net/e1000.c                      |  72 ++++--------------
 hw/net/vmxnet3.c                    |  44 ++---------
 hw/nvram/fw_cfg.c                   | 109 ++--------------------------
 hw/scsi/vmw_pvscsi.c                |  67 +++--------------
 hw/virtio/virtio-pci.c              |  11 +--
 system/vl.c                         |   5 --
 target/i386/cpu.c                   |   3 +-
 target/i386/machine.c               |   5 +-
 tests/qtest/test-x86-cpuid-compat.c |  14 ----
 23 files changed, 51 insertions(+), 452 deletions(-)

Comments

Thomas Huth May 9, 2025, 1:30 p.m. UTC | #1
On 06/05/2025 16.38, Philippe Mathieu-Daudé wrote:
> (series reviewed)
> 
> Since v2:
> - Removed qtest in test-x86-cpuid-compat.c
> 
> Since v1:
> - Fixed issues noticed by Thomas
> 
> The versioned 'pc' and 'q35' machines up to 2.12 been marked
> as deprecated two releases ago, and are older than 6 years,
> so according to our support policy we can remove them.
> 
> This series only includes the 2.4 and 2.5 machines removal,
> as it is a big enough number of LoC removed. Rest will
> follow. Highlight is the legacy fw_cfg API removal :)

  Hi Philippe,

I just gave this series a try, but it fails in at least two spots.

First, you missed this:

diff --git a/hw/block/fdc-isa.c b/hw/block/fdc-isa.c
--- a/hw/block/fdc-isa.c
+++ b/hw/block/fdc-isa.c
@@ -112,7 +112,6 @@ static void isabus_fdc_realize(DeviceState *dev, Error 
**errp)
      }

      qdev_set_legacy_instance_id(dev, isa->iobase, 2);
-    qdev_prop_set_enum(dev, "fallback", FLOPPY_DRIVE_TYPE_288);

      fdctrl_realize_common(dev, fdctrl, &err);
      if (err != NULL) {

Second, bios-tables-test now complains about a mismatch in the ACPI tables 
somewhere...

Could you please fix that up and check in the gitlab CI whether the problems 
are gone? Thanks!

  Thomas
Philippe Mathieu-Daudé May 12, 2025, 8:32 a.m. UTC | #2
On 9/5/25 15:30, Thomas Huth wrote:
> On 06/05/2025 16.38, Philippe Mathieu-Daudé wrote:
>> (series reviewed)
>>
>> Since v2:
>> - Removed qtest in test-x86-cpuid-compat.c
>>
>> Since v1:
>> - Fixed issues noticed by Thomas
>>
>> The versioned 'pc' and 'q35' machines up to 2.12 been marked
>> as deprecated two releases ago, and are older than 6 years,
>> so according to our support policy we can remove them.
>>
>> This series only includes the 2.4 and 2.5 machines removal,
>> as it is a big enough number of LoC removed. Rest will
>> follow. Highlight is the legacy fw_cfg API removal :)
> 
>   Hi Philippe,
> 
> I just gave this series a try, but it fails in at least two spots.
> 
> First, you missed this:
> 
> diff --git a/hw/block/fdc-isa.c b/hw/block/fdc-isa.c
> --- a/hw/block/fdc-isa.c
> +++ b/hw/block/fdc-isa.c
> @@ -112,7 +112,6 @@ static void isabus_fdc_realize(DeviceState *dev, 
> Error **errp)
>       }
> 
>       qdev_set_legacy_instance_id(dev, isa->iobase, 2);
> -    qdev_prop_set_enum(dev, "fallback", FLOPPY_DRIVE_TYPE_288);

This should be:

  +      fdctrl->fallback = FLOPPY_DRIVE_TYPE_288;

> 
>       fdctrl_realize_common(dev, fdctrl, &err);
>       if (err != NULL) {
> 
> Second, bios-tables-test now complains about a mismatch in the ACPI 
> tables somewhere...

I can not reproduce that (tested on macOS and Linux).

> 
> Could you please fix that up and check in the gitlab CI whether the 
> problems are gone? Thanks!
> 
>   Thomas
>
Thomas Huth May 12, 2025, 8:39 a.m. UTC | #3
On 12/05/2025 10.32, Philippe Mathieu-Daudé wrote:
> On 9/5/25 15:30, Thomas Huth wrote:
>> On 06/05/2025 16.38, Philippe Mathieu-Daudé wrote:
>>> (series reviewed)
>>>
>>> Since v2:
>>> - Removed qtest in test-x86-cpuid-compat.c
>>>
>>> Since v1:
>>> - Fixed issues noticed by Thomas
>>>
>>> The versioned 'pc' and 'q35' machines up to 2.12 been marked
>>> as deprecated two releases ago, and are older than 6 years,
>>> so according to our support policy we can remove them.
>>>
>>> This series only includes the 2.4 and 2.5 machines removal,
>>> as it is a big enough number of LoC removed. Rest will
>>> follow. Highlight is the legacy fw_cfg API removal :)
>>
>>   Hi Philippe,
>>
>> I just gave this series a try, but it fails in at least two spots.
>>
>> First, you missed this:
>>
>> diff --git a/hw/block/fdc-isa.c b/hw/block/fdc-isa.c
>> --- a/hw/block/fdc-isa.c
>> +++ b/hw/block/fdc-isa.c
>> @@ -112,7 +112,6 @@ static void isabus_fdc_realize(DeviceState *dev, Error 
>> **errp)
>>       }
>>
>>       qdev_set_legacy_instance_id(dev, isa->iobase, 2);
>> -    qdev_prop_set_enum(dev, "fallback", FLOPPY_DRIVE_TYPE_288);
> 
> This should be:
> 
>   +      fdctrl->fallback = FLOPPY_DRIVE_TYPE_288;
> 
>>
>>       fdctrl_realize_common(dev, fdctrl, &err);
>>       if (err != NULL) {
>>
>> Second, bios-tables-test now complains about a mismatch in the ACPI tables 
>> somewhere...
> 
> I can not reproduce that (tested on macOS and Linux).

Maybe it was just a side-effect of my removal of the qdev_prop_set_enum(dev, 
"fallback", ...) line from the code ... if "make check" now works fine, then 
never mind!

  Thomas