From: Jan Kiszka <[email protected]>

Reading the KVM code of Linux and re-reading the spec, multiple times,
it became clear the RH only controls whether one or all CPUs of a
potential target group should be addressed. If it's set only one is
chosen, via lowest-prio, but that is done by the hardware. For us, its
state does not matter. We always consider a multicast scenario, thus
simply ignore the state of this bit.

This fixes startup errors when DH=1 and RH=0 of the kind

FATAL: Unsupported MSI/MSI-X state, device ...

Signed-off-by: Jan Kiszka <[email protected]>
---
 hypervisor/arch/x86/vtd.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/hypervisor/arch/x86/vtd.c b/hypervisor/arch/x86/vtd.c
index e33b5ff4..c072ba3a 100644
--- a/hypervisor/arch/x86/vtd.c
+++ b/hypervisor/arch/x86/vtd.c
@@ -849,14 +849,6 @@ int iommu_map_interrupt(struct cell *cell, u16 device_id, 
unsigned int vector,
                 */
                goto update_irte;

-       /*
-        * If redirection hint is cleared, physical destination mode is used
-        * effectively (destination mode bit is ignored, only a single CPU is
-        * targeted). Fix up irq_msg so that apic_filter_irq_dest uses the
-        * appropriate mode.
-        */
-       irq_msg.dest_logical = irq_msg.dest_logical && irq_msg.redir_hint;
-
        /* Validate delivery mode and destination(s). */
        if (irq_msg.delivery_mode != APIC_MSG_DLVR_FIXED &&
            irq_msg.delivery_mode != APIC_MSG_DLVR_LOWPRI)
--
2.26.2

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/efae5a29-91ce-6550-984e-c3431429beb6%40web.de.

Reply via email to