[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 3/6] iommu/arm: Introduce iommu_add_dt_pci_sideband_ids API
On 5/19/23 04:45, Jan Beulich wrote: > On 18.05.2023 23:06, Stewart Hildebrand wrote: >> --- a/xen/include/xen/iommu.h >> +++ b/xen/include/xen/iommu.h >> @@ -26,6 +26,7 @@ >> #include <xen/spinlock.h> >> #include <public/domctl.h> >> #include <public/hvm/ioreq.h> >> +#include <asm/acpi.h> >> #include <asm/device.h> > > I view this as problematic: It'll require all architectures with an > IOMMU implementation to have an asm/acpi.h. I think this wants to go > inside an "#ifdef CONFIG_ACPI" and then ... Will do >> @@ -228,12 +230,25 @@ int iommu_release_dt_devices(struct domain *d); >> * (IOMMU is not enabled/present or device is not connected to it). >> */ >> int iommu_add_dt_device(struct dt_device_node *np); >> +int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev); >> >> int iommu_do_dt_domctl(struct xen_domctl *, struct domain *, >> XEN_GUEST_HANDLE_PARAM(xen_domctl_t)); >> >> +#else /* !HAS_DEVICE_TREE */ >> +static inline int iommu_add_dt_pci_sideband_ids(struct pci_dev *pdev) >> +{ >> + return 0; >> +} >> #endif /* HAS_DEVICE_TREE */ >> >> +static inline int iommu_add_pci_sideband_ids(struct pci_dev *pdev) >> +{ >> + if ( acpi_disabled ) > > ... the same #ifdef would be added around this if(). Okay. I will take care to avoid an unreachable return 0; by introducing a local variable: static inline int iommu_add_pci_sideband_ids(struct pci_dev *pdev) { int ret = 0; #ifdef CONFIG_ACPI if ( acpi_disabled ) #endif ret = iommu_add_dt_pci_sideband_ids(pdev); return ret; } > All of this of course only if this is deemed enough to allow co-existance > of DT and ACPI (which I'm not convinced it is, but I don't know enough > about DT and e.g. possible mixed configurations). > > Jan On ARM, we dynamically check for the existence of a valid device tree and set acpi_disabled accordingly. I did some basic testing on ARM with both CONFIG_ACPI=y and # CONFIG_ACPI is not set. My understanding is that it will work, and it should allow ACPI on ARM to be implemented in future. >> + return iommu_add_dt_pci_sideband_ids(pdev); >> + return 0; >> +} >> + >> struct page_info; >> >> /* >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |