]> xenbits.xensource.com Git - xen.git/commitdiff
x86: don't allow MSI pIRQ mapping on unowned device
authorJan Beulich <jbeulich@suse.com>
Thu, 12 Oct 2017 13:55:58 +0000 (15:55 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 12 Oct 2017 13:55:58 +0000 (15:55 +0200)
MSI setup should be permitted only for existing devices owned by the
respective guest (the operation may still be carried out by the domain
controlling that guest).

This is part of XSA-237.

Reported-by: HW42 <hw42@ipsumj.de>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 3308374b1be7d43e23bd2e9eaf23ec06d7959882
master date: 2017-10-12 14:35:14 +0200

xen/arch/x86/irq.c

index aae0eadcd2e4da50671227bccc1f8ae9a2aa6e35..c7cb09005fcc422154f69c329c33b62a42d9e33f 100644 (file)
@@ -1961,7 +1961,10 @@ int map_domain_pirq(
         if ( !cpu_has_apic )
             goto done;
 
-        pdev = pci_get_pdev(msi->seg, msi->bus, msi->devfn);
+        pdev = pci_get_pdev_by_domain(d, msi->seg, msi->bus, msi->devfn);
+        if ( !pdev )
+            goto done;
+
         ret = pci_enable_msi(msi, &msi_desc);
         if ( ret )
         {