Re: [PATCH 2/2] iommu/amd: Force identity mode for selected GPUs only
Vasant Hegde <[email protected]> Mon, 27 Jul 2026 09:49:13 +0530
| Newsgroups | dev.linux.lists.iommu,org.kernel.vger.linux-pci |
|---|---|
| Message-ID | <[email protected]> |
On 7/24/2026 8:45 PM, Jason Gunthorpe wrote:
> On Thu, Jul 23, 2026 at 06:15:48AM +0000, Vasant Hegde wrote:
>> @@ -3120,20 +3146,28 @@ static int amd_iommu_def_domain_type(struct device *dev)
>> if (!dev_data)
>> return 0;
>>
>> + if (!dev_is_pci(dev))
>> + return 0;
>> +
>> /* Always use DMA domain for untrusted device */
>> - if (dev_is_pci(dev) && to_pci_dev(dev)->untrusted)
>> + if (to_pci_dev(dev)->untrusted)
>> return IOMMU_DOMAIN_DMA;
>
> The core code does this, it shouldn't be in a driver?
Right. I didn't realized core has this check. I will drop this check in next
version.
>
>> - /*
>> - * Do not identity map IOMMUv2 capable devices when:
>> - * - memory encryption is active, because some of those devices
>> - * (AMD GPUs) don't have the encryption bit in their DMA-mask
>> - * and require remapping.
>> - * - SNP is enabled, because it prohibits DTE[Mode]=0.
>> - */
>> - if (pdev_pasid_supported(dev_data) &&
>> - !cc_platform_has(CC_ATTR_MEM_ENCRYPT) &&
>> - !amd_iommu_snp_en) {
>> + /* Apply device specific quirks */
>> + if (quirks_force_identity_mapping(to_pci_dev(dev))) {
>> +
>> + /*
>> + * When memory encryption is active, some of these devices
>> + * don't have the encryption bit in their DMA-mask and
>> + * require remapping.
>> + */
>> + if (cc_platform_has(CC_ATTR_MEM_ENCRYPT))
>> + return 0;
>
> I think this can probably be dropped now? There is no intersection of
> this old broken embedded GPU and a CPU that supports CC right?
I did consider dropping these two checks, but I was not entirely sure. So I kept
as is for now. Once these series settles and I can go with next step of dropping
these two checks.
@Alex, @Mario, Any suggestions ?
-Vasant
>
>> +
>> + /* DTE[Mode]=0 is prohibited when SNP is enabled */
>> + if (amd_iommu_snp_en)
>> + return 0;
>
> Ditto?
>
> Jason