lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1416309320-7498-1-git-send-email-pang.xunlei@linaro.org>
Date:	Tue, 18 Nov 2014 19:15:15 +0800
From:	"pang.xunlei" <pang.xunlei@...aro.org>
To:	linux-kernel@...r.kernel.org
Cc:	rtc-linux@...glegroups.com, Thomas Gleixner <tglx@...utronix.de>,
	Alessandro Zummo <a.zummo@...ertech.it>,
	John Stultz <john.stultz@...aro.org>,
	Arnd Bergmann <arnd.bergmann@...aro.org>,
	"pang.xunlei" <pang.xunlei@...aro.org>
Subject: [RFC PATCH v3 0/5] y2038 in-kernel interface changes for drivers/rtc

On 32bit systems, the kernel uses a 32bit signed time_t value
for seconds since 1970-01-01:00:00:00. This will overflow at
2038-01-19 03:14:08, and is widely known as the y2038 problem.

To address this, the plan is to create 64bit internal interfaces
which are 2038 safe, mark the unsafe versions as deprecated and 
then convert subsystems one by one over to the new interfaces.
Once all users are converted, the deprecated internal functions
will be removed.

NOTE: In some cases, there are issues with 32bit values that are
unsigned, and thus become y2106 issues. Since its somewhat simpler
to unify the time types, we'll try to convert those usage to 64bit
where it can be easily done. In those cases where a fix would be 
overly complicated, we'll simply explicitly mark the limitation.

This patchset introduces the 64bit interfaces needed to convert
the drivers/rtc subsystem, and to keep it relatively short some
patches to demonstrate how the conversion will be done. If the 
feedback is positive on this series, we'll provide the full 
conversion series as well.

pang.xunlei (5):
  time: Provide y2038 safe do_settimeofday() replacement
  time: Provide y2038 safe timekeeping_inject_sleeptime() replacement
  time: Provide y2038 safe mktime() replacement
  rtc/lib: Provide y2038 safe rtc_tm_to_time()/rtc_time_to_tm()
    replacement
  rtc/mc13xxx: Eliminate time problems

 drivers/rtc/rtc-lib.c       |   38 ++++++++++++++++++++------------------
 drivers/rtc/rtc-mc13xxx.c   |   25 +++++++++++--------------
 include/linux/rtc.h         |   21 +++++++++++++++++++--
 include/linux/time.h        |   17 ++++++++++++++---
 include/linux/timekeeping.h |   34 ++++++++++++++++++++++++++++++++--
 kernel/time/time.c          |   20 ++++++++------------
 kernel/time/timekeeping.c   |   29 +++++++++++++----------------
 7 files changed, 117 insertions(+), 67 deletions(-)

-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ