[PATCH v2 3/5] genirq: Export NMI APIs
From: Mayank Rungta
Date: Fri Aug 28 2026 - 21:02:08 EST
Currently, request_nmi(), free_nmi(), enable_nmi(), disable_nmi_nosync(),
and disable_nmi() are restricted to built-in kernel code because they are
not exported.
Export these symbols with EXPORT_SYMBOL_GPL so loadable kernel modules can
register and manage NMIs.
Assisted-by: Antigravity:gemini
Signed-off-by: Mayank Rungta <mrungta@xxxxxxxxxx>
---
kernel/irq/manage.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 40013aa94481..ded8cc33381c 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -766,6 +766,7 @@ void disable_nmi_nosync(unsigned int irq)
{
disable_irq_nosync(irq);
}
+EXPORT_SYMBOL_GPL(disable_nmi_nosync);
/**
* disable_nmi - disable an nmi and wait for any pending handlers
@@ -781,6 +782,7 @@ void disable_nmi(unsigned int irq)
{
disable_irq(irq);
}
+EXPORT_SYMBOL_GPL(disable_nmi);
void __enable_irq(struct irq_desc *desc)
{
@@ -848,6 +850,7 @@ void enable_nmi(unsigned int irq)
{
enable_irq(irq);
}
+EXPORT_SYMBOL_GPL(enable_nmi);
static int set_irq_wake_real(unsigned int irq, unsigned int on)
{
@@ -2110,6 +2113,7 @@ const void *free_nmi(unsigned int irq, void *dev_id)
return __cleanup_nmi(irq, desc);
}
+EXPORT_SYMBOL_GPL(free_nmi);
/**
* request_threaded_irq - allocate an interrupt line
@@ -2372,6 +2376,7 @@ int request_nmi(unsigned int irq, irq_handler_t handler,
return retval;
}
+EXPORT_SYMBOL_GPL(request_nmi);
void enable_percpu_irq(unsigned int irq, unsigned int type)
{
--
2.55.0.897.gb25b4bd76c-goog