On Thu, May 08, 2025 at 03:35:47PM +0200, Philippe Mathieu-Daudé wrote: > Date: Thu, 8 May 2025 15:35:47 +0200 > From: Philippe Mathieu-Daudé <phi...@linaro.org> > Subject: [PATCH v4 24/27] hw/intc/ioapic: Remove IOAPICCommonState::version > field > X-Mailer: git-send-email 2.47.1 > > The IOAPICCommonState::version integer was only set > in the hw_compat_2_7[] array, via the 'version=0x11' > property. We removed all machines using that array, > lets remove that property, simplify by only using the > default version (defined as IOAPIC_VER_DEF). > > For the record, this field was introduced in commit > 20fd4b7b6d9 ("x86: ioapic: add support for explicit EOI"): > > > Some old Linux kernels (upstream before v4.0), or any released RHEL > > kernels has problem in sending APIC EOI when IR is enabled. > > Meanwhile, many of them only support explicit EOI for IOAPIC, which > > is only introduced in IOAPIC version 0x20. This patch provide a way > > to boost QEMU IOAPIC to version 0x20, in order for QEMU to correctly > > receive EOI messages. > > > > Without boosting IOAPIC version to 0x20, kernels before commit > > d32932d ("x86/irq: Convert IOAPIC to use hierarchical irqdomain > > interfaces") will have trouble enabling both IR and level-triggered > > interrupt devices (like e1000). > > > > To upgrade IOAPIC to version 0x20, we need to specify: > > > > -global ioapic.version=0x20 > > > > To be compatible with old systems, 0x11 will still be the default > > IOAPIC version. Here 0x11 and 0x20 are the only versions to be > > supported. > > > > One thing to mention: this patch only applies to emulated IOAPIC. It > > does not affect kernel IOAPIC behavior. > > Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> > Reviewed-by: Mark Cave-Ayland <mark.caveayl...@nutanix.com> > --- > hw/intc/ioapic_internal.h | 3 +-- > hw/intc/ioapic.c | 18 ++---------------- > hw/intc/ioapic_common.c | 2 +- > 3 files changed, 4 insertions(+), 19 deletions(-)
Reviewed-by: Zhao Liu <zhao1....@intel.com>