]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iommu/io-pgtable-dart: Only set subpage protection disable for DART 1
authorAsahi Lina <lina@asahilina.net>
Wed, 19 Feb 2025 09:13:53 +0000 (10:13 +0100)
committerJoerg Roedel <jroedel@suse.de>
Fri, 21 Feb 2025 11:06:54 +0000 (12:06 +0100)
Subpage protection can't be disabled on t6000-style darts,
as such the disable flag no longer applies, and probably
even affects something else.

Fixes: dc09fe1c5edd ("iommu/io-pgtable-dart: Add DART PTE support for t6000")
Signed-off-by: Asahi Lina <lina@asahilina.net>
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
Reviewed-by: Sven Peter <sven@svenpeter.dev>
Link: https://lore.kernel.org/r/20250219-dart2-no-sp-disable-v1-1-9f324cfa4e70@gmail.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/io-pgtable-dart.c

index c004640640ee50d01dd54c38e89162c0fcb1988f..06aca9ab52f9a811a2608ae75155a36919799c74 100644 (file)
@@ -135,7 +135,6 @@ static int dart_init_pte(struct dart_io_pgtable *data,
        pte |= FIELD_PREP(APPLE_DART_PTE_SUBPAGE_START, 0);
        pte |= FIELD_PREP(APPLE_DART_PTE_SUBPAGE_END, 0xfff);
 
-       pte |= APPLE_DART1_PTE_PROT_SP_DIS;
        pte |= APPLE_DART_PTE_VALID;
 
        for (i = 0; i < num_entries; i++)
@@ -211,6 +210,7 @@ static dart_iopte dart_prot_to_pte(struct dart_io_pgtable *data,
        dart_iopte pte = 0;
 
        if (data->iop.fmt == APPLE_DART) {
+               pte |= APPLE_DART1_PTE_PROT_SP_DIS;
                if (!(prot & IOMMU_WRITE))
                        pte |= APPLE_DART1_PTE_PROT_NO_WRITE;
                if (!(prot & IOMMU_READ))