From: Luca Fancellu <[email protected]> On ARM, if the hardware domain is using the emulated bus, it should not be allowed to add/remove pci devices, so return EOPNOTSUPP in that case.
Signed-off-by: Luca Fancellu <[email protected]> Signed-off-by: Stewart Hildebrand <[email protected]> Signed-off-by: Mykyta Poturai <[email protected]> --- xen/drivers/pci/physdev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/xen/drivers/pci/physdev.c b/xen/drivers/pci/physdev.c index d46501b884..5b3f8dde14 100644 --- a/xen/drivers/pci/physdev.c +++ b/xen/drivers/pci/physdev.c @@ -19,6 +19,9 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) struct pci_dev_info pdev_info; nodeid_t node = NUMA_NO_NODE; + if ( hwdom_uses_vpci() ) + return -EOPNOTSUPP; + if ( !is_pci_passthrough_enabled() && !arch_pci_device_physdevop() ) return -EOPNOTSUPP; @@ -57,6 +60,9 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) case PHYSDEVOP_pci_device_remove: { struct physdev_pci_device dev; + if ( hwdom_uses_vpci() ) + return -EOPNOTSUPP; + if ( !is_pci_passthrough_enabled() && !arch_pci_device_physdevop() ) return -EOPNOTSUPP; -- 2.34.1
