x86/dpci: EOI interrupt regardless of its masking status
authorRoger Pau Monné <roger.pau@citrix.com>
Thu, 7 Jan 2021 14:10:29 +0000 (15:10 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 7 Jan 2021 14:10:29 +0000 (15:10 +0100)
commiteb298f32fac5ac362eef30a66a9c9c42724d4ce6
treeb70c9a97d1a389ab0f0ee46343b2b8d4a0ab6b55
parent925fdb0870f7c211c00caabbe9e4dae35cc19a01
x86/dpci: EOI interrupt regardless of its masking status

Modify hvm_pirq_eoi to always EOI the interrupt if required, instead
of not doing such EOI if the interrupt is routed through the vIO-APIC
and the entry is masked at the time the EOI is performed.

Further unmask of the vIO-APIC pin won't EOI the interrupt, and thus
the guest OS has to wait for the timeout to expire and the automatic
EOI to be performed.

This allows to simplify the helpers and drop the vioapic_redir_entry
parameter from all of them.

Fixes: ccfe4e08455 ('Intel vt-d specific changes in arch/x86/hvm/vmx/vtd.')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/hvm/vioapic.c
xen/arch/x86/hvm/vpic.c
xen/drivers/passthrough/x86/hvm.c
xen/include/asm-x86/hvm/io.h