diff options
author | 2024-12-04 14:20:02 +0000 | |
---|---|---|
committer | 2024-12-11 20:32:34 +0100 | |
commit | bad6722e478f5b17a5ceb039dfb4c680cf2c0b48 (patch) | |
tree | 1415c9f991a6a65e0dec4ac7fa5acee7fd18cb24 /include/linux/irq.h | |
parent | genirq: Reuse irq_thread_fn() for forced thread case (diff) | |
download | wireguard-linux-bad6722e478f5b17a5ceb039dfb4c680cf2c0b48.tar.xz wireguard-linux-bad6722e478f5b17a5ceb039dfb4c680cf2c0b48.zip |
kexec: Consolidate machine_kexec_mask_interrupts() implementation
Consolidate the machine_kexec_mask_interrupts implementation into a common
function located in a new file: kernel/irq/kexec.c. This removes duplicate
implementations from architecture-specific files in arch/arm, arch/arm64,
arch/powerpc, and arch/riscv, reducing code duplication and improving
maintainability.
The new implementation retains architecture-specific behavior for
CONFIG_GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD, which was previously implemented
for ARM64. When enabled (currently for ARM64), it clears the active state
of interrupts forwarded to virtual machines (VMs) before handling other
interrupt masking operations.
Signed-off-by: Eliav Farber <farbere@amazon.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20241204142003.32859-2-farbere@amazon.com
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r-- | include/linux/irq.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index fa711f80957b..25f51bf3c351 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -694,6 +694,9 @@ extern int irq_chip_request_resources_parent(struct irq_data *data); extern void irq_chip_release_resources_parent(struct irq_data *data); #endif +/* Disable or mask interrupts during a kernel kexec */ +extern void machine_kexec_mask_interrupts(void); + /* Handling of unhandled and spurious interrupts: */ extern void note_interrupt(struct irq_desc *desc, irqreturn_t action_ret); |