target/i386: Fix sanity check on max APIC ID / X2APIC enablement
commitdc89f32d92bba795b0665f075b78d8881cf67ab3
authorDavid Woodhouse <dwmw2@infradead.org>
Mon, 14 Mar 2022 14:25:41 +0000 (14 14:25 +0000)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 16 May 2022 08:38:39 +0000 (16 04:38 -0400)
tree345f7ba9454b2d8f697a2b14b86a7ff74d24a3be
parent5181db132b587754dda3a520eec923b87a65bbb7
target/i386: Fix sanity check on max APIC ID / X2APIC enablement

The check on x86ms->apic_id_limit in pc_machine_done() had two problems.

Firstly, we need KVM to support the X2APIC API in order to allow IRQ
delivery to APICs >= 255. So we need to call/check kvm_enable_x2apic(),
which was done elsewhere in *some* cases but not all.

Secondly, microvm needs the same check. So move it from pc_machine_done()
to x86_cpus_init() where it will work for both.

The check in kvm_cpu_instance_init() is now redundant and can be dropped.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Claudio Fontana <cfontana@suse.de>
Message-Id: <20220314142544.150555-1-dwmw2@infradead.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/i386/pc.c
hw/i386/x86.c
target/i386/kvm/kvm-cpu.c