[PATCH v5 0/2] Improve interrupt handling during machine kexec

Eliav Farber
2024-11-30T20:13:55Z

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 v5 1/2] Move machine_kexec_mask_interrupts() to kernel/irq/kexec.c,
removing duplicate architecture-specific implementations.
[PATCH v5 2/2] Refine machine_kexec_mask_interrupts() to avoid re-masking
already-masked interrupts, resolving specific warnings
triggered in GPIO IRQ flows.

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 | 9 ++++++++
kernel/irq/Makefile | 2 +-
kernel/irq/kexec.c | 36 +++++++++++++++++++++++++++++++
11 files changed, 51 insertions(+), 101 deletions(-)
create mode 100644 kernel/irq/kexec.c