[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 3/3] VT-d/ATS: tidy device_in_domain()
Use appropriate types. Drop unnecessary casts. Check for failures which can (at least in theory because of non-obvious breakage elsewhere) occur, instead of ones which really can't (map_domain_page() won't return NULL). Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- a/xen/drivers/passthrough/vtd/x86/ats.c +++ b/xen/drivers/passthrough/vtd/x86/ats.c @@ -71,23 +71,25 @@ int ats_device(const struct pci_dev *pde return pos; } -static int device_in_domain(const struct iommu *iommu, - const struct pci_dev *pdev, u16 did) +static bool device_in_domain(const struct iommu *iommu, + const struct pci_dev *pdev, uint16_t did) { - struct root_entry *root_entry = NULL; + struct root_entry *root_entry; struct context_entry *ctxt_entry = NULL; - int tt, found = 0; + unsigned int tt; + bool found = false; - root_entry = (struct root_entry *) map_vtd_domain_page(iommu->root_maddr); - if ( !root_entry || !root_present(root_entry[pdev->bus]) ) - goto out; - - ctxt_entry = (struct context_entry *) - map_vtd_domain_page(root_entry[pdev->bus].val); + if ( unlikely(!iommu->root_maddr) ) + { + ASSERT_UNREACHABLE(); + return false; + } - if ( ctxt_entry == NULL ) + root_entry = map_vtd_domain_page(iommu->root_maddr); + if ( !root_present(root_entry[pdev->bus]) ) goto out; + ctxt_entry = map_vtd_domain_page(root_entry[pdev->bus].val); if ( context_domain_id(ctxt_entry[pdev->devfn]) != did ) goto out; @@ -95,7 +97,7 @@ static int device_in_domain(const struct if ( tt != CONTEXT_TT_DEV_IOTLB ) goto out; - found = 1; + found = true; out: if ( root_entry ) unmap_vtd_domain_page(root_entry); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |