iommu/amd: X2apic mode: re-enable after resume
authorMaxim Levitsky <mlevitsk@redhat.com>
Tue, 23 Nov 2021 16:10:35 +0000 (18:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:04:14 +0000 (11:04 +0100)
[ Upstream commit 01b297a48a26bcb96769505ac948db4603b72bd1 ]

Otherwise it is guaranteed to not work after the resume...

Fixes: 66929812955bb ("iommu/amd: Add support for X2APIC IOMMU interrupts")

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Link: https://lore.kernel.org/r/20211123161038.48009-3-mlevitsk@redhat.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iommu/amd/init.c

index 9b12a2f..c1d4e66 100644 (file)
@@ -2169,7 +2169,6 @@ static int iommu_setup_intcapxt(struct amd_iommu *iommu)
                return ret;
        }
 
-       iommu_feature_enable(iommu, CONTROL_INTCAPXT_EN);
        return 0;
 }
 
@@ -2192,6 +2191,10 @@ static int iommu_init_irq(struct amd_iommu *iommu)
 
        iommu->int_enabled = true;
 enable_faults:
+
+       if (amd_iommu_xt_mode == IRQ_REMAP_X2APIC_MODE)
+               iommu_feature_enable(iommu, CONTROL_INTCAPXT_EN);
+
        iommu_feature_enable(iommu, CONTROL_EVT_INT_EN);
 
        if (iommu->ppr_log != NULL)