Re: [PATCH] rtc: check if __rtc_read_time was successful in rtc_timer_do_work()

From: Alexandre Belloni
Date: Fri Nov 29 2024 - 18:20:49 EST


On 20/11/2024 22:17:34+0800, 高永良 wrote:
> Hi Alexandre Belloni,
>
> I've noticed that the post-failure process for __rtc_read_time requires
> careful handling.
> 1. Need to call pm_relax.

I had a look when taking your patch and I'm not convinced calling
pm_relax is necessary.

> 2. Potentially need to set the alarm to ensure subsequent interrupts can
> process the
> expired timer? Could you give me some advice?

Same thing, if you are not able to read the current time, setting the
next alarm is going to fail anyway.

> Should I continue to submit a fix patch or create a v2 version of the patch?
>
> Best Regards,
> Yongliang Gao
>
> Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> 于2024年11月12日周二 06:11写道:
>
> > On Fri, 11 Oct 2024 12:31:53 +0800, Yongliang Gao wrote:
> > > If the __rtc_read_time call fails,, the struct rtc_time tm; may contain
> > > uninitialized data, or an illegal date/time read from the RTC hardware.
> > >
> > > When calling rtc_tm_to_ktime later, the result may be a very large value
> > > (possibly KTIME_MAX). If there are periodic timers in rtc->timerqueue,
> > > they will continually expire, may causing kernel softlockup.
> > >
> > > [...]
> >
> > Applied, thanks!
> >
> > [1/1] rtc: check if __rtc_read_time was successful in rtc_timer_do_work()
> > https://git.kernel.org/abelloni/c/e8ba8a2bc4f6
> >
> > Best regards,
> >
> > --
> > Alexandre Belloni, co-owner and COO, Bootlin
> > Embedded Linux and Kernel engineering
> > https://bootlin.com
> >

--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com