This patch series focuses on improving the machine_kexec_mask_interrupts() function by consolidating its implementation and optimizing its behavior to avoid redundant interrupt masking.
Patch Summary: [PATCH v6 1/2] Move machine_kexec_mask_interrupts() to kernel/irq/kexec.c, removing duplicate architecture-specific implementations. [PATCH v6 2/2] Refine machine_kexec_mask_interrupts() to avoid re-masking already-masked interrupts, resolving specific warnings triggered in GPIO IRQ flows. Changes between v5 and v6: - Change GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD to not be user selectable. Changes between v4 and v5: - The function machine_kexec_mask_interrupts() has been moved from kernel/kexec_core.c to a new file kernel/irq/kexec.c. - A new configuration option, GENERIC_IRQ_KEXEC_CLEAR_VM_FORWARD, has been added. - The parameters for the machine_kexec_mask_interrupts() function have been defined in reverse Christmas Tree style. - The comment explaining the call to irq_set_irqchip_state() has been improved for clarity. - The phrase 'This patch' has been removed from the commit message. Changes between v3 and v4: - Add missing <linux/irqdesc.h> and <linux/irq.h> includes. Eliav Farber (2): kexec: Consolidate machine_kexec_mask_interrupts() implementation kexec: Prevent redundant IRQ masking by checking state before shutdown arch/arm/kernel/machine_kexec.c | 23 -------------------- arch/arm64/Kconfig | 1 + arch/arm64/kernel/machine_kexec.c | 31 -------------------------- arch/powerpc/include/asm/kexec.h | 1 - arch/powerpc/kexec/core.c | 22 ------------------- arch/powerpc/kexec/core_32.c | 1 + arch/riscv/kernel/machine_kexec.c | 23 -------------------- include/linux/irq.h | 3 +++ kernel/irq/Kconfig | 6 ++++++ kernel/irq/Makefile | 2 +- kernel/irq/kexec.c | 36 +++++++++++++++++++++++++++++++ 11 files changed, 48 insertions(+), 101 deletions(-) create mode 100644 kernel/irq/kexec.c -- 2.40.1