iommu/amd: Ensure GA log notifier callbacks finish running before module unload

[ Upstream commit 94c721ea03c7078163f41dbaa101ac721ddac329 ]

Synchronize RCU when unregistering KVM's GA log notifier to ensure all
in-flight interrupt handlers complete before KVM-the module is unloaded.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20250315031048.2374109-1-seanjc@google.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Sean Christopherson
2025-03-14 20:10:48 -07:00
committed by Greg Kroah-Hartman
parent 32f25633f3
commit 920fcc7adc

View File

@@ -780,6 +780,14 @@ int amd_iommu_register_ga_log_notifier(int (*notifier)(u32))
{ {
iommu_ga_log_notifier = notifier; iommu_ga_log_notifier = notifier;
/*
* Ensure all in-flight IRQ handlers run to completion before returning
* to the caller, e.g. to ensure module code isn't unloaded while it's
* being executed in the IRQ handler.
*/
if (!notifier)
synchronize_rcu();
return 0; return 0;
} }
EXPORT_SYMBOL(amd_iommu_register_ga_log_notifier); EXPORT_SYMBOL(amd_iommu_register_ga_log_notifier);