]> git.hungrycats.org Git - linux/commit
rtc: cmos: unregister HPET IRQ handler on probe failure
authorHaoxiang Li <haoxiang_li2024@163.com>
Tue, 23 Jun 2026 10:08:48 +0000 (18:08 +0800)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Wed, 24 Jun 2026 21:49:00 +0000 (23:49 +0200)
commita5bb580df018b5d1c5668f05f7979044fb19e23a
tree3f2fa16ba08f025f2805429c1ea8d6dabbc7391f
parent6882aab3c66112b33b251be95c09c8ead3e8d580
rtc: cmos: unregister HPET IRQ handler on probe failure

cmos_do_probe() registers cmos_interrupt() as the HPET RTC IRQ
handler before requesting the RTC IRQ and registering the RTC
device. If either request_irq() or devm_rtc_register_device()
fails afterwards, the error path leaves the HPET RTC IRQ handler
installed. This leaves a stale handler behind and make a later
hpet_register_irq_handler() fail with -EBUSY.

Track whether the HPET handler was registered successfully and
undo the registration on the probe error path. Also mask the HPET
RTC IRQ bits to match the normal shutdown cleanup.

Fixes: 9d8af78b0797 ("rtc: add HPET RTC emulation to RTC_DRV_CMOS")
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
Link: https://patch.msgid.link/20260623100848.2127281-1-haoxiang_li2024@163.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-cmos.c