>>> On 20.11.18 at 17:01, <roger....@citrix.com> wrote: > Bridges are not behind an IOMMU, and are already special cased and > skipped in amd_iommu_add_device. Apply the same special casing when > updating page tables. > > This is required or else update_paging_mode will fail and return an > error to the caller (amd_iommu_{un}map_page) which will destroy the > domain. > > Signed-off-by: Roger Pau Monné <roger....@citrix.com> > --- > Cc: Suravee Suthikulpanit <suravee.suthikulpa...@amd.com> > Cc: Brian Woods <brian.wo...@amd.com> > --- > Changes since v4: > - Invert condition order so they match the order in > amd_iommu_add_device. > - Expand commit message to spell out why this is required.
Thanks. Nevertheless ... > --- a/xen/drivers/passthrough/amd/iommu_map.c > +++ b/xen/drivers/passthrough/amd/iommu_map.c > @@ -612,6 +612,10 @@ static int update_paging_mode(struct domain *d, unsigned > long dfn) > /* Update device table entries using new root table and paging mode > */ > for_each_pdev( d, pdev ) > { > + if ( pdev->type == DEV_TYPE_PCI_HOST_BRIDGE && > + is_hardware_domain(d) ) > + continue; ... before spreading the issue I'd still like to see clarification of / justification for the is_hardware_domain() part of the condition you clone. Suravee, Brian? Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel