RE: [PATCH v1] rtc: cmos: avoid UIP when writing/reading alarm time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Sasha Levin <sashal@xxxxxxxxxx>
> Sent: Sunday, December 11, 2022 2:10 PM
> To: Mateusz Jończyk <mat.jonczyk@xxxxx>
> Cc: Chen, Kane <kane.chen@xxxxxxxxx>; stable@xxxxxxxxxxxxxxx; Alexandre
> Belloni <alexandre.belloni@xxxxxxxxxxx>
> Subject: Re: [PATCH v1] rtc: cmos: avoid UIP when writing/reading alarm time
> 
> On Fri, Dec 09, 2022 at 11:40:56PM +0100, Mateusz Jończyk wrote:
> >W dniu 9.12.2022 o 01:37, Sasha Levin pisze:
> >> On Thu, Dec 08, 2022 at 10:47:17PM +0100, Mateusz Jończyk wrote:
> >>> W dniu 7.12.2022 o 07:51, Chen, Kane pisze:
> >>>>> -----Original Message-----
> >>>>> From: Sasha Levin <sashal@xxxxxxxxxx>
> >>>>> Sent: Wednesday, December 7, 2022 1:13 PM
> >>>>> To: Chen, Kane <kane.chen@xxxxxxxxx>
> >>>>> Cc: stable@xxxxxxxxxxxxxxx
> >>>>> Subject: Re: [PATCH v1] rtc: cmos: avoid UIP when writing/reading
> >>>>> alarm time
> >>>>>
> >>>>> On Wed, Dec 07, 2022 at 11:57:22AM +0800, Kane Chen wrote:
> >>>>>> While runnings s0ix cycling test based on rtc alarm wakeup on
> >>>>>> ADL-P devices, We found the data from CMOS_READ is not reasonable
> >>>>>> and causes
> >>>>> RTC wake up fail.
> >>>>>> With the below changes, we don't see unreasonable data from cmos
> >>>>>> and
> >>>>> issue is gone.
> >>>>>
> >>>>> Thanks for the analysis, I can queue most of these up. There are
> >>>>> two which won't go in:
> >>>>>
> >>>>>> cd17420: rtc: cmos: avoid UIP when writing alarm time
> >>>>>> cdedc45: rtc: cmos: avoid UIP when reading alarm time
> >>>>>> ec5895c: rtc: mc146818-lib: extract mc146818_avoid_UIP
> >>>>>> ea6fa49: rtc: mc146818-lib: fix RTC presence check
> >>>>>> 13be2ef: rtc: cmos: Disable irq around direct invocation of
> >>>>>> cmos_interrupt()
> >>>>>> 0dd8d6c: rtc: Check return value from mc146818_get_time()
> >>>>>> e1aba37: rtc: cmos: remove stale REVISIT comments
> >>>>>> 6950d04: rtc: cmos: Replace spin_lock_irqsave with spin_lock in
> >>>>>> hard IRQ
> >>>>> This one fixes a commit which isn't in the 5.10 tree.
> >>>>>
> >>>>>> d35786b: rtc: mc146818-lib: change return values of
> >>>>>> mc146818_get_time()
> >>>>>> ebb22a0: rtc: mc146818: Dont test for bit 0-5 in Register D
> >>>>>> 211e5db: rtc: mc146818: Detect and handle broken RTCs
> >>>>>> dcf257e: rtc: mc146818: Reduce spinlock section in
> >>>>>> mc146818_set_time()
> >>>>> This one looks like an optimization.
> >>>>>
> >>>>> --
> >>>> I'm sorry,
> >>>> I thought dcf257e and  6950d04, 13be2ef  are also required to avoid
> >>>> cherry-pick conflict After checking again, dcf257e, 6950d04, 13be2ef are
> not needed.
> >>>>
> >>>> Here is the list I would like to pick
> >>>> cd17420: rtc: cmos: avoid UIP when writing alarm time
> >>>> cdedc45: rtc: cmos: avoid UIP when reading alarm time
> >>>> ec5895c: rtc: mc146818-lib: extract mc146818_avoid_UIP
> >>>> ea6fa49: rtc: mc146818-lib: fix RTC presence check
> >>>> 0dd8d6c: rtc: Check return value from mc146818_get_time()
> >>>> e1aba37: rtc: cmos: remove stale REVISIT comments
> >>>> d35786b: rtc: mc146818-lib: change return values of
> >>>> mc146818_get_time()
> >>>> ebb22a0: rtc: mc146818: Dont test for bit 0-5 in Register D
> >>>> 211e5db: rtc: mc146818: Detect and handle broken RTCs
> >>>> 05a0302: rtc: mc146818: Prevent reading garbage
> >>>>
> >>>> Thanks a lot
> >>>>
> >>>>> Thanks,
> >>>>> Sasha
> >>>>>
> >>> Hello,
> >>>
> >>> I think that you should also pick these patches which fix issues in
> >>> the series that is prepared for 5.4:
> >>>
> >>> 1) commit 7372971c1be5 ("rtc: mc146818-lib: fix signedness bug in
> >>> mc146818_get_time()")
> >>>
> >>> which fixes d35786b: rtc: mc146818-lib: change return values of
> >>> mc146818_get_time()
> >>>
> >>> 2) commit 13be2efc390a ("rtc: cmos: Disable irq around direct
> >>> invocation of cmos_interrupt()")
> >>>
> >>> which fixes 6950d04: rtc: cmos: Replace spin_lock_irqsave with
> >>> spin_lock in hard IRQ and is not prepared for 5.4 stable even though it was
> mentioned above.
> >>>
> >>> 3) commit 811f5559270f ("rtc: mc146818-lib: fix locking in
> >>> mc146818_set_time")
> >>>
> >>> which fixes dcf257e: rtc: mc146818: Reduce spinlock section in
> >>> mc146818_set_time()
> >>
> >> Ack, will do, thanks.
> >
> >Hello,
> >
> >However, I would like to ask: is it really necessary to include all of
> >these patches in stable? I think that it is very likely that only these
> >patches are sufficient to fix the original problem reported by Kane Chen:
> >
> >cd17420: rtc: cmos: avoid UIP when writing alarm time
> >cdedc45: rtc: cmos: avoid UIP when reading alarm time
> >ec5895c: rtc: mc146818-lib: extract mc146818_avoid_UIP
> 

"05a0302: rtc: mc146818: Prevent reading garbage" this helps the issue as well I think.

I didn't test these 3 patches alone because it will create conflicts when I pick ec5895c.
I'm worried I made things wrong and thought those dependencies are landed for a long time
So decided to pick related dependencies eventually.

Pls let me know if you have concern :)


> I would agree that this could be enough to fix the issue that was described, but...
> 
> >These patches should be most relevant when using the RTC alarm and are
> >self-contained. So I would like to ask Kane Chen to recheck with these
> >patches only. Other patches change the CMOS RTC reading routines
> >significantly and have a higher risk of introducing regressions (but I
> >am not aware of any outstanding problems).
> 
> The rest of the patches do look like fixes that should have been added to stable
> (or are dependencies of such fixes) on their own. Given those patches are pretty
> old, any reason to not just include them?
> 
> The process works better if we address issues before making users come and
> complain on the mailing list :)
> 
> --
> Thanks,
> Sasha




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux