Re: [5/5] drivers/rtc/sa1100: Replace deprecated rtc_tm_to_time() and rtc_time_to_tm()

From: Alexandre Belloni
Date: Mon Jun 01 2015 - 15:59:22 EST


Hi,

On 01/06/2015 at 21:43:22 +0200, Arnd Bergmann wrote :
> Note that Alexandre has stepped up as a new maintainer for RTC now,
> so whatever he wants is probably the way it should be done.
>

I'm still quite new in that position and I didn't make my mind in a lot
of different topics ;)

> I think the way that your first approach came out was a bit unfortunate,
> because we didn't have agreement on how it should really be done.
>
> IMHO the rtc_time64_to_hw32 and rtc_hw32_to_time64 interfaces were a
> good concept, most importantly so we can easily find where the potential
> problems are, but the implementation was a bit too ambitious in trying
> to fix the underlying issue.
>
> If we want to start this over again, I think a better approach would be
> to introduce trivial functions at first, like
>
> time64_t rtc_hw32_to_time64(u32 hwtime)
> {
> /*
> * this is safe until about 2106, when unsigned u32 seconds from the
> * 1970 epoch will overflow
> */
> return (u64)hwtime;
> }
> EXPORT_SYMBOL_GPL(rtc_hw32_to_time64);
>
> This way, we can fix all the drivers without introducing any possible
> ambiguity and later decide how that function should in fact handle the
> 2106 overflow. Our grandchildren can take care of that if necessary ;-)
>

We also have RTCs that can only store the year as an integer between 0
and 99. Some of them will definitively not pass 2099, considering that
the can only handle leap days between 2000 and 2099. Also, we have a few
drivers assuming that year >= 70 is in the 19s so they will stop working
correctly in 2070. I think we also have to consider those while trying
to find a solution.

I feel that we still have a bit of time before having to hurry and find
a proper solution ;)

--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/