On 10.02.2025 11:30, Mykyta Poturai wrote: > From: Stewart Hildebrand <stewart.hildebr...@amd.com> > > Enable the use of IOMMU + PCI in dom0 without having to specify > "pci-passthrough=yes".
Why? It _is_ passing through, even if Dom0 is special. > @@ -83,9 +84,9 @@ static int __init pci_init(void) > { > /* > * Enable PCI passthrough when has been enabled explicitly > - * (pci-passthrough=on). > + * (pci-passthrough=on) or IOMMU is present and enabled. > */ > - if ( !pci_passthrough_enabled ) > + if ( !is_pci_passthrough_enabled() && !iommu_enabled ) > return 0; I can't reasonably judge on this adjustment, but ... > --- a/xen/drivers/pci/physdev.c > +++ b/xen/drivers/pci/physdev.c > @@ -19,7 +19,7 @@ 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 ( !is_pci_passthrough_enabled() ) > + if ( !is_pci_passthrough_enabled() && !iommu_enabled ) > return -EOPNOTSUPP; > > ret = -EFAULT; > @@ -57,7 +57,7 @@ ret_t pci_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) > arg) > case PHYSDEVOP_pci_device_remove: { > struct physdev_pci_device dev; > > - if ( !is_pci_passthrough_enabled() ) > + if ( !is_pci_passthrough_enabled() && !iommu_enabled ) > return -EOPNOTSUPP; > > ret = -EFAULT; ... these two certainly look wrong to be made. If an Arm-specific adjustment is needed (and can be justified), a per-arch hook may need introducing. Jan