drivers/iommu/amd/iommu.c | 8 ++++++++ 1 file changed, 8 insertions(+)
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>
---
drivers/iommu/amd/iommu.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index b48a72bd7b23..b314523d9194 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -982,6 +982,14 @@ int amd_iommu_register_ga_log_notifier(int (*notifier)(u32))
{
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;
}
EXPORT_SYMBOL(amd_iommu_register_ga_log_notifier);
base-commit: ea9bd29a9c0d757b3384ae3e633e6bbaddf00725
--
2.49.0.rc1.451.g8f38331e32-goog
On Fri, Mar 14, 2025 at 08:10:48PM -0700, Sean Christopherson wrote:
> 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>
> ---
> drivers/iommu/amd/iommu.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
> index b48a72bd7b23..b314523d9194 100644
> --- a/drivers/iommu/amd/iommu.c
> +++ b/drivers/iommu/amd/iommu.c
> @@ -982,6 +982,14 @@ int amd_iommu_register_ga_log_notifier(int (*notifier)(u32))
> {
> 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;
> }
> EXPORT_SYMBOL(amd_iommu_register_ga_log_notifier);
>
> base-commit: ea9bd29a9c0d757b3384ae3e633e6bbaddf00725
> --
> 2.49.0.rc1.451.g8f38331e32-goog
>
>
Hi Sean,
Sorry to bother you. I'm reworking the hardware_setup() path in our
internal multi-KVM, but I didn't see any usage of
'amd_iommu_register_ga_log_notifier(NULL)' in the KVM code for now. Has
it not been committed?
Thanks!
On Thu, Sep 18, 2025, Hou Wenlong wrote:
> On Fri, Mar 14, 2025 at 08:10:48PM -0700, Sean Christopherson wrote:
> > 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>
> > ---
> > drivers/iommu/amd/iommu.c | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
> > index b48a72bd7b23..b314523d9194 100644
> > --- a/drivers/iommu/amd/iommu.c
> > +++ b/drivers/iommu/amd/iommu.c
> > @@ -982,6 +982,14 @@ int amd_iommu_register_ga_log_notifier(int (*notifier)(u32))
> > {
> > 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;
> > }
> > EXPORT_SYMBOL(amd_iommu_register_ga_log_notifier);
> >
> > base-commit: ea9bd29a9c0d757b3384ae3e633e6bbaddf00725
> > --
> > 2.49.0.rc1.451.g8f38331e32-goog
> >
> >
> Hi Sean,
>
> Sorry to bother you. I'm reworking the hardware_setup() path in our
> internal multi-KVM, but I didn't see any usage of
> 'amd_iommu_register_ga_log_notifier(NULL)' in the KVM code for now. Has
> it not been committed?
Huh. I completely forgot to send (or even write?) the patch. I'll send one
shortly.
Thanks much!
On Tue, Oct 07, 2025 at 10:54:41AM -0700, Sean Christopherson wrote: > Huh. I completely forgot to send (or even write?) the patch. I'll send one > shortly. When you do, can you please add Vasant Hegde <vasant.hegde@amd.com> and Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> on Cc as well? Their reviews are important in moving this forward. Thanks, Joerg
© 2016 - 2025 Red Hat, Inc.