On 03/12/2015 at 19:12:24 -0500, Sasha Levin wrote : > At some point after humans go extinct and robots cotrol the world, dividing > he time64_t by 86400 to extract the days will overflow a 32bit integer, > leading to incorrect conversion into rtc_time in rtc_time64_to_tm(). >
And at that time, the robots won't care about 32bit platforms :) > Signed-off-by: Sasha Levin <sasha.le...@oracle.com> > --- > drivers/rtc/rtc-lib.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/rtc/rtc-lib.c b/drivers/rtc/rtc-lib.c > index e6bfb9c..459cd4d 100644 > --- a/drivers/rtc/rtc-lib.c > +++ b/drivers/rtc/rtc-lib.c > @@ -54,11 +54,11 @@ void rtc_time64_to_tm(time64_t time, struct rtc_time *tm) > { > unsigned int month, year; > unsigned long secs; > - int days; > + time64_t days; > > /* time must be positive */ > days = div_s64(time, 86400); > - secs = time - (unsigned int) days * 86400; > + secs = time - days * 86400; > > /* day of the week, 1970-01-01 was a Thursday */ > tm->tm_wday = (days + 4) % 7; > -- > 1.7.10.4 > -- 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/