Re: [PATCH v5 06/17] rtc: rzn1: Disable alarm interrupt before reprogramming alarm registers
Wolfram Sang <[email protected]>
| Newsgroups | org.kernel.vger.linux-rtc,dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree |
|---|---|
| Message-ID | <aohqVrJV5hiZoWXd@ninjato> |
On Fri, Aug 21, 2026 at 02:10:40PM +0000, [email protected] wrote: > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > > Pre-existing issues: > - [High] Concurrent lockless read and write of `rtc->tm_alarm` and a race with delayed IRQ handlers can cause a newly configured alarm to be silently disabled. > -- > > --- Patch [6]: [PATCH v5 06/17] rtc: rzn1: Disable alarm interrupt before reprogramming alarm registers --- > commit 6227942d78d91abfb1648a64bce64f0011716b61 > Author: Lad Prabhakar <[email protected]> > > rtc: rzn1: Disable alarm interrupt before reprogramming alarm registers > > This commit updates rzn1_rtc_set_alarm() to disable the alarm interrupt > before reprogramming the alarm registers. This prevents the interrupt from > firing while the alarm registers contain a mixture of old and newly written > values. > > > diff --git a/drivers/rtc/rtc-rzn1.c b/drivers/rtc/rtc-rzn1.c > > index 44e8db466cb78..09631a3a51345 100644 > > --- a/drivers/rtc/rtc-rzn1.c > > +++ b/drivers/rtc/rtc-rzn1.c > > @@ -280,6 +280,11 @@ static int rzn1_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) > > if (alarm > farest) > > return -ERANGE; > > > > + /* Disable alarm interrupts before reprogramming the alarm. */ > > + ret = rzn1_rtc_alarm_irq_enable(dev, 0); > > + if (ret) > > + return ret; > > + > > writel(bin2bcd(tm->tm_min), rtc->base + RZN1_RTC_ALM); > > writel(bin2bcd(tm->tm_hour), rtc->base + RZN1_RTC_ALH); > > writel(BIT(tm->tm_wday), rtc->base + RZN1_RTC_ALW); > > [Severity: High] > This is a pre-existing issue, but does this fully protect against a race > with a delayed IRQ handler? I'll leave it to you but I think this should also be handled incrementally.
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEOZGx6rniZ1Gk92RdFA3kzBSgKbYFAmqIalYACgkQFA3kzBSg KbbYtRAAmBGBeeUfZjCYLQm2Y/O2Zm3wN4Y9jZLcWjJoBiOiwkJ4IkZG+BdvhT4k 1JG2HaD5oGj4PmKgpIYhTI22cgocQIgeBmsP+V3ETtHOt+eVD8j1oBU+gsFLzYX8 3HRoOV8yPlRCVgm4pvxmFluxHnKcmJUYW2vxRngE1MMLhtnMG7Tvk6i84TFbpaX9 o32KOtCsySA3WSohFhlyDU5AW1bzh+7ZRNswe4uWi4OoBxW4gCna7iCUVJihLb7u 1rucfrTj6Wn+amBSd1gm+R3ASZ8uJN9gc7RGSK/FfQyYeYJBCy6H7M77BIwthn5E Y23xbcrrFP4gl6JjIsxQ/n6SNltELkMlpfiP4HKiBNJ6+JsC0RkLcX0y6zQUpb7F LI117lIRoHk3RJ36y9Pcb91Np6nztMn/ltJL49YKCrM9GXQ2OjeQrGvBqYvzQqwj uSfXPdJ3yvHQlSCnHa+CULC4FCEsC5TEOCwScezzRwlyVErcKj/6g163PG2vuvs3 kURrj6+SZGnVde8pO0GSKKk6RnzOFalCA06jX462LyTcLEUM2hoXkfUrdd1w9s44 I4LyAIuEnf8f99+6cv3GjiU1m1sBtWUeHxQXo4tJUCfdZDIqswUK+C5C8amMf0Ki irPk4cRg15vk1HhVcvUY+CNgcHaFze0qkA4OjmCE7stfK18/MBg= =SSbb -----END PGP SIGNATURE-----