diff options
Diffstat (limited to 'drivers/iommu/amd_iommu.c')
| -rw-r--r-- | drivers/iommu/amd_iommu.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index 4e04fff23977..bee0dfb7b93b 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -246,7 +246,13 @@ static u16 get_alias(struct device *dev)  	/* The callers make sure that get_device_id() does not fail here */  	devid = get_device_id(dev); + +	/* For ACPI HID devices, we simply return the devid as such */ +	if (!dev_is_pci(dev)) +		return devid; +  	ivrs_alias = amd_iommu_alias_table[devid]; +  	pci_for_each_dma_alias(pdev, __last_alias, &pci_alias);  	if (ivrs_alias == pci_alias) @@ -3063,7 +3069,7 @@ static phys_addr_t amd_iommu_iova_to_phys(struct iommu_domain *dom,  		return 0;  	offset_mask = pte_pgsize - 1; -	__pte	    = *pte & PM_ADDR_MASK; +	__pte	    = __sme_clr(*pte & PM_ADDR_MASK);  	return (__pte & ~offset_mask) | (iova & offset_mask);  }  | 
