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 )