On Wed, Jul 20, 2022 at 05:34:39PM -0700, Jerry Snitselaar wrote:
diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 1d08f87e734b..2b00d7f28df7 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -815,6 +815,11 @@ static void free_ga_log(struct amd_iommu *iommu)
#endif
}
+static void iommu_ga_log_disable(struct amd_iommu *iommu)
+{
+ iommu_feature_disable(iommu, CONTROL_GALOG_EN);
+}
+
static int iommu_ga_log_enable(struct amd_iommu *iommu)
{
#ifdef CONFIG_IRQ_REMAP
@@ -2504,6 +2509,7 @@ static void early_enable_iommus(void)
for_each_iommu(iommu) {
iommu_disable_command_buffer(iommu);
iommu_disable_event_buffer(iommu);
+ iommu_ga_log_disable(iommu);
iommu_enable_command_buffer(iommu);
iommu_enable_event_buffer(iommu);
iommu_enable_ga(iommu);
Looks about right, but I also let Suravee comment on this.
Disabling the GA-Log under a device still using it should hopefully not
put it into some undefined state.