On 10.02.25 12:56, Jan Beulich wrote: > 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.
Do you think it would be better to drop this completely and require pci-passthrough=yes for PCI to work in Dom0? > >> @@ -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. This should not affect x86 in any way if I'm not missing something, as !is_pci_passthrough_enabled() will always be false. Or are you concerned about something else? > > Jan -- Mykyta