[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH v2 03/11] time: Add rtc_tm_to_time64() safe version(using time64_t)
On Thu, 30 Oct 2014, pang.xunlei wrote: Same $subject issue. > As part of addressing 2038 saftey for in-kernel uses, this patch > adds safe rtc_tm_to_time64() using time64_t. After this patch, > rtc_tm_to_time() should be replaced by rtc_tm_to_time64() one by > one. Eventually, rtc_tm_to_time() will be removed from the kernel > when it has no users. > > Signed-off-by: pang.xunlei <pang.xunlei@xxxxxxxxxx> > --- > drivers/rtc/rtc-lib.c | 15 ++++++++++++++- > include/linux/rtc.h | 1 + > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/drivers/rtc/rtc-lib.c b/drivers/rtc/rtc-lib.c > index c4cf057..6948cbd 100644 > --- a/drivers/rtc/rtc-lib.c > +++ b/drivers/rtc/rtc-lib.c > @@ -110,10 +110,23 @@ EXPORT_SYMBOL(rtc_valid_tm); > > /* > * Convert Gregorian date to seconds since 01-01-1970 00:00:00. > + * Safe version for 2038 safety. Docbook comment missing. See the previous replies. > + */ > +int rtc_tm_to_time64(struct rtc_time *tm, time64_t *time) What's the point of the return value? Just because rtc_tm_to_time() has one? Yes it does, but that does not mean that we blindly copy the existing nonsense when we implement a replacement interface. What's wrong with changing it to: time64_t rtc_tm_to_time64(struct rtc_time *tm) { return mktime64(......); } > +/* > + * Convert Gregorian date to seconds since 01-01-1970 00:00:00. > + * TODO: [2038 safety] should be replaced by rtc_tm_to_time64. Groan. > */ > int rtc_tm_to_time(struct rtc_time *tm, unsigned long *time) > { > - *time = mktime(tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, > + *time = (unsigned long) mktime64(tm->tm_year + 1900, tm->tm_mon + 1, > tm->tm_mday, > tm->tm_hour, tm->tm_min, tm->tm_sec); And that would become *time = rtc_time_to_time64(tm); > return 0; > } Please stop doing purely mechanical changes. Just blindly copying stuff and make it take time64_t instead of unsigned long can be done with a script as well. Thanks, tglx _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |