Re: [PATCH 1/2] genirq: irq_pipeline: Don't run handlers of disabled lines on replay

Philippe Gerum <[email protected]> Thu, 23 Jul 2026 16:23:17 +0200
Newsgroups dev.linux.lists.xenomai
Message-ID <[email protected]>
Hi Richard,

Richard Weinberger <[email protected]> writes:

> The pipelined handle_level_irq() function only checks unsing irq_can_handle()
> on the IRQ_FLOW_START path, assuming that an event which reaches
> the in-band replay path already passed this check when it was deferred
> at pipeline entry.
> This assumption does not hold for interrupts demultiplexed by an
> in-band parent action handler.
>
> This was observed on qcom hardware, the qcom-ipcc summary interrupt is
> an in-band line, hence its demux handler runs from the replay path.
> qcom_glink_smem requests its child IPCC interrupt with IRQF_NO_AUTOEN
> and only enables it once smem->glink has been assigned, but the demux
> delivered the interrupt early, dereferencing the still-NULL pointer:
>

Nice catch, merged, thanks.

-- 
Philippe.