Message ID | 20210903083347.131786-6-andr2000@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | PCI devices passthrough on Arm, part 2 | expand |
On 03.09.2021 10:33, Oleksandr Andrushchenko wrote: > --- a/xen/drivers/passthrough/pci.c > +++ b/xen/drivers/passthrough/pci.c > @@ -1301,6 +1301,9 @@ static int iommu_add_device(struct pci_dev *pdev) > if ( !is_iommu_enabled(pdev->domain) ) > return 0; > > +#ifdef CONFIG_ARM > + pci_to_dev(pdev)->type = DEV_PCI; > +#endif Why here instead of in alloc_pdev()? The field should be valid by the time the new item gets inserted into the segment's list of devices, imo. Jan
On 03.09.21 15:41, Jan Beulich wrote: > On 03.09.2021 10:33, Oleksandr Andrushchenko wrote: >> --- a/xen/drivers/passthrough/pci.c >> +++ b/xen/drivers/passthrough/pci.c >> @@ -1301,6 +1301,9 @@ static int iommu_add_device(struct pci_dev *pdev) >> if ( !is_iommu_enabled(pdev->domain) ) >> return 0; >> >> +#ifdef CONFIG_ARM >> + pci_to_dev(pdev)->type = DEV_PCI; >> +#endif > Why here instead of in alloc_pdev()? The field should be valid by the time > the new item gets inserted into the segment's list of devices, imo. Yes, makes sense. Thank you, Oleksandr > > Jan >
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c index 56e261e9bd08..25304dbe9956 100644 --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -1301,6 +1301,9 @@ static int iommu_add_device(struct pci_dev *pdev) if ( !is_iommu_enabled(pdev->domain) ) return 0; +#ifdef CONFIG_ARM + pci_to_dev(pdev)->type = DEV_PCI; +#endif rc = hd->platform_ops->add_device(pdev->devfn, pci_to_dev(pdev)); if ( rc || !pdev->phantom_stride ) return rc;