[PATCH 0/2] rtc: renesas-rtca3: Fix IRQ initialization and teardown ordering

From: Myeonghun Pak

Date: Sun Oct 11 2026 - 18:57:38 EST


The RTCA3 alarm handler passes priv->rtc_dev to rtc_update_irq().
Registering managed IRQs before allocating the managed RTC lets devres
drop the RTC allocation reference before freeing and synchronizing the
IRQs. Masking the hardware sources in remove also does not wait for an
interrupt handler that has already entered.

Initialize the RTC before requesting IRQs so its allocation remains
valid until managed IRQ teardown on removal and probe failure. Then
stop both interrupt sources and synchronously disable both Linux IRQs
in remove, before managed RTC unregistration. Serialize removal with
RTC operations and reject later alarm enable or setup requests.

Compile-tested with Clang 22.1.2, W=1 (arm64). No runtime testing.
One existing FIELD_GET comparison warning also occurs when compiling
the unmodified driver with the same flags. No new compiler warnings.

Myeonghun Pak (2):
rtc: renesas-rtca3: Initialize the RTC before requesting interrupts
rtc: renesas-rtca3: Join interrupt handlers before unregistering the RTC

drivers/rtc/rtc-renesas-rtca3.c | 40 ++++++++++++++++++++++++++++------------
1 file changed, 28 insertions(+), 12 deletions(-)