From 7f6daabd70ff94b7465798dcadb71e79562db2b2 Mon Sep 17 00:00:00 2001 From: Stefano Stabellini Date: Wed, 5 Jan 2011 23:14:37 +0000 Subject: [PATCH] qemu-xen: support PV on HVM MSIX remapping Support PV on HVM MSIX remapping The technique is the same used with MSI: if the guest enables an MSIX passing 0 as vector number, then read the address and use it as pirq number for the following mapping request to Xen. Signed-off-by: Stefano Stabellini --- hw/pt-msi.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/pt-msi.c b/hw/pt-msi.c index f0fb3e31d5..b01744ed52 100644 --- a/hw/pt-msi.c +++ b/hw/pt-msi.c @@ -300,6 +300,14 @@ static int pt_msix_update_one(struct pt_dev *dev, int entry_nr) if ( !entry->flags ) return 0; + if (!gvec) { + /* if gvec is 0, the guest is asking for a particular pirq that + * is passed as dest_id */ + pirq = ((gaddr >> 32) & 0xffffff00) | + (((gaddr & 0xffffffff) >> MSI_TARGET_CPU_SHIFT) & 0xff); + PT_LOG("pt_msix_update_one requested pirq = %d\n", pirq); + } + /* Check if this entry is already mapped */ if ( entry->pirq == -1 ) { -- 2.39.5