Hi Thomas, On 25/4/24 20:43, Thomas Huth wrote:
For downstream versions of QEMU, we'd like to be able to compile QEMU without the FDC code included (since it's not required for modern VMs anymore and the FDC code has rather a bad reputation, see the VENOM CVE).
IIRC you still need to keep the i440fx+piix machine DS due to migration compatibility, right? Are you able to migrate a VM booted with FDC to a non-FDC one?
The q35 machine can already be instantiated without FDC, but for being able to link a binary without the FDC code, the Kconfig file needs some tweaks and there are two spots in the pc code that directly call functions from the FDC code - those need to be disabled via #ifdefs.
Is it useful to you to have q35 without FDC but i440fx+piix with? Or are you removing it from i440fx+piix due to shared code with q35?
The third patch changes the i440fx and isapc machine types so that they can work without the FDC device, too, in case it has not been compiled into the binary. It's marked as RFC since I assume that the FDC was originally a fix compononent of these motherboards, so I'm unsure whether we should allow the disablement there. OTOH, it seems to work fine, and the FDC is only disabled when it is not available in the binary, so I hope this patch is fine, too. Thomas Huth (3): hw/i386/pc: Allow to compile without CONFIG_FDC_ISA hw/i386/Kconfig: Allow to compile Q35 without FDC_ISA hw/i386: Add the possibility to use i440fx and isapc without FDC hw/i386/pc.c | 13 +++++++++---- hw/i386/pc_piix.c | 6 ++++-- hw/i386/Kconfig | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-)