On 31.10.2023 00:52, Stewart Hildebrand wrote: > --- a/xen/drivers/passthrough/pci.c > +++ b/xen/drivers/passthrough/pci.c > @@ -1618,6 +1618,16 @@ int iommu_do_pci_domctl( > bus = PCI_BUS(machine_sbdf); > devfn = PCI_DEVFN(machine_sbdf); > > + if ( IS_ENABLED(CONFIG_ARM) && > + !is_hardware_domain(d) && > + !is_system_domain(d) && > + (!IS_ENABLED(CONFIG_HAS_VPCI_GUEST_SUPPORT) || !has_vpci(d)) )
I don't think you need the explicit ARM check; that's redundant with checking !HAS_VPCI_GUEST_SUPPORT. It's also not really clear why you need to check for the system domain here. > + { > + printk(XENLOG_G_WARNING "Cannot assign %pp to %pd: vPCI support > not enabled\n", > + &PCI_SBDF(seg, bus, devfn), d); ret = -EPERM; (or some other suitable error indicator) Jan > + break; > + } > + > pcidevs_lock(); > ret = device_assigned(seg, bus, devfn); > if ( domctl->cmd == XEN_DOMCTL_test_assign_device )