On 20.11.2020 14:24, Paul Durrant wrote: > @@ -85,25 +85,28 @@ static bool device_in_domain(const struct vtd_iommu > *iommu, > return false; > } > > - root_entry = map_vtd_domain_page(iommu->root_maddr); > - if ( !root_present(root_entry[pdev->bus]) ) > + root_entries = (struct root_entry > *)map_vtd_domain_page(iommu->root_maddr);
Why the cast, the more that ... > + root_entry = &root_entries[pdev->bus]; > + if ( !root_entry->p ) > goto out; > > - ctxt_entry = map_vtd_domain_page(root_entry[pdev->bus].val); > - if ( context_domain_id(ctxt_entry[pdev->devfn]) != did ) > + context_entries = map_vtd_domain_page(root_entry->ctp); ... you have none here? With this dropped Reviewed-by: Jan Beulich <jbeul...@suse.com> Jan