From: Stefano Stabellini Date: Wed, 5 Jan 2011 23:14:37 +0000 (+0000) Subject: qemu-xen: support PV on HVM MSIX remapping X-Git-Tag: xen-4.1.0-rc1~4 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=7f6daabd70ff94b7465798dcadb71e79562db2b2;p=qemu-xen-4.4-testing.git 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 --- diff --git a/hw/pt-msi.c b/hw/pt-msi.c index f0fb3e31d..b01744ed5 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 ) {