On Thu, Sep 29, 2022 at 09:06:45PM +0000, Rishabh Bhatnagar wrote:
This patch series backports a bunch of patches related IRQ handling with respect to freeing the irq line while IRQ is in flight at CPU or at the hardware level. Recently we saw this issue in serial 8250 driver where the IRQ was being freed while the irq was in flight or not yet delivered to the CPU. As a result the irqchip was going into a wedged state and IRQ was not getting delivered to the cpu. These patches helped fixed the issue in 4.14 kernel. Let us know if more patches need backporting.
Lukas Wunner (2): genirq: Update code comments wrt recycled thread_mask genirq: Synchronize only with single thread on free_irq()
Thomas Gleixner (4): genirq: Delay deactivation in free_irq() genirq: Fix misleading synchronize_irq() documentation genirq: Add optional hardware synchronization for shutdown x86/ioapic: Implement irq_get_irqchip_state() callback
arch/x86/kernel/apic/io_apic.c | 46 ++++++++++++++ kernel/irq/autoprobe.c | 6 +- kernel/irq/chip.c | 6 ++ kernel/irq/cpuhotplug.c | 2 +- kernel/irq/internals.h | 5 ++ kernel/irq/manage.c | 106 ++++++++++++++++++++++----------- 6 files changed, 133 insertions(+), 38 deletions(-)
A simple build test breaks with this series applied:
ld: kernel/irq/manage.o: in function `__synchronize_hardirq': manage.c:(.text+0x149): undefined reference to `__irq_get_irqchip_state' ld: kernel/irq/manage.o: in function `irq_get_irqchip_state': manage.c:(.text+0x5a2): undefined reference to `__irq_get_irqchip_state' make: *** [Makefile:1038: vmlinux] Error 1
How did you test this?
{sigh}
I'm dropping all of these from my queue. I think you need to just keep this in your device-specific tree as obviously this is not ready to be backported anywhere.
greg k-h