[PATCH v2 0/2] media: rcar-isp: fix core registration and IRQ lifetime

From: Myeonghun Pak

Date: Wed Oct 14 2026 - 20:42:26 EST


The ISP core IRQ is registered before the RPPX1 object and interrupt
handler state are initialized. On removal, it remains registered until
after the RPPX1 object has been freed. An interrupt handler can therefore
access RPPX1 outside its lifetime.

This series requests the IRQ after its dependencies are initialized and
releases it before destroying RPPX1. It also distinguishes an absent
optional core from a registration failure after core resources have been
prepared.

Patch 1 handles the -ENODEV distinction. Patch 2 moves IRQ registration
and release within the RPPX1 lifetime. The error-handling change comes
first so a failure from the later IRQ request cannot be mistaken for an
absent core after registration has unwound.

Compile-tested with Clang 22.1.2, W=1 (arm64). No runtime testing.

Changes in v2:
- Split the -ENODEV handling into patch 1.
- Explain the RPPX1 allocation, free and pre-lock IRQ accesses in patch 2.
- Combined code changes are identical to v1.

v1: https://lore.kernel.org/r/20261011214448.2043581-1-mhun512@xxxxxxxxx

Myeonghun Pak (2):
media: rcar-isp: distinguish absent cores from registration failures
media: rcar-isp: release the core interrupt before destroying RPPX1

drivers/media/platform/renesas/rcar-isp/core.c | 13 +++++++++----
drivers/media/platform/renesas/rcar-isp/csisp.c | 2 ++
drivers/media/platform/renesas/rcar-isp/risp-core.h | 2 ++
3 files changed, 13 insertions(+), 4 deletions(-)

base-commit: 238650ef6c7c7cca08e032527329424c9fbd70e5