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:
committed by
Greg Kroah-Hartman
parent
32f25633f3
commit
920fcc7adc
@@ -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);
|
||||||
|
Reference in New Issue
Block a user