From 2c17e1836d46203f02f0ad699465500554575aef Mon Sep 17 00:00:00 2001 From: Chao Gao Date: Wed, 1 Mar 2017 10:28:35 +0100 Subject: [PATCH] passthrough: reject self-(de)assignment of devices That is to say, don't support a domain assigns a device to itself or detachs a device from itself. Signed-off-by: Chao Gao Acked-by: Jan Beulich --- xen/drivers/passthrough/pci.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c index 338d6b4f37..beddd42701 100644 --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -1603,6 +1603,13 @@ int iommu_do_pci_domctl( break; case XEN_DOMCTL_assign_device: + /* Don't support self-assignment of devices. */ + if ( d == current->domain ) + { + ret = -EINVAL; + break; + } + ret = -ENODEV; if ( domctl->u.assign_device.dev != XEN_DOMCTL_DEV_PCI ) break; @@ -1643,6 +1650,13 @@ int iommu_do_pci_domctl( break; case XEN_DOMCTL_deassign_device: + /* Don't support self-deassignment of devices. */ + if ( d == current->domain ) + { + ret = -EINVAL; + break; + } + ret = -ENODEV; if ( domctl->u.assign_device.dev != XEN_DOMCTL_DEV_PCI ) break; -- 2.30.2