VT-d: make remap_entry_to_msi_msg() return consistent message During debugging of another problem I found that in x2APIC mode, the destination field of the low address value wasn't passed back correctly. While this is benign in most cases (as the value isn't being used anywhere), it can be confusing (and misguiding) when printing the value read or when comparing it to the one previously passed into the inverse function. Signed-off-by: Jan Beulich --- a/xen/drivers/passthrough/vtd/intremap.c +++ b/xen/drivers/passthrough/vtd/intremap.c @@ -504,7 +504,11 @@ static int remap_entry_to_msi_msg( MSI_ADDR_REDIRECTION_CPU: MSI_ADDR_REDIRECTION_LOWPRI); if ( x2apic_enabled ) + { msg->dest32 = iremap_entry->lo.dst; + msg->address_lo |= + (iremap_entry->lo.dst & 0xff) << MSI_ADDR_DEST_ID_SHIFT; + } else msg->address_lo |= ((iremap_entry->lo.dst >> 8) & 0xff ) << MSI_ADDR_DEST_ID_SHIFT;