From b0239cd7269da15027971b5cf2e2a94d4b871876 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 12 Oct 2017 15:34:58 +0200 Subject: [PATCH] x86: don't allow MSI pIRQ mapping on unowned device 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 Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper master commit: 3308374b1be7d43e23bd2e9eaf23ec06d7959882 master date: 2017-10-12 14:35:14 +0200 --- xen/arch/x86/irq.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index db69264eb7..4068a47473 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -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 ) {