提交 dfc2507b 编写于 作者: J John Stultz 提交者: Thomas Gleixner

time: Make settimeofday error checking work again

In commit 86d34732 some of the checking for a valid timeval
was subtley changed which caused -EINVAL to be returned whenever
the timeval was null.

However, it is possible to set the timezone data while specifying
a NULL timeval, which is usually done to handle systems where the
RTC keeps local time instead of UTC. Thus the patch causes such
systems to have the time incorrectly set.

This patch addresses the issue by handling the error conditionals
in the same way as was done previously.

Fixes: 86d34732 "time: Introduce do_sys_settimeofday64()"
Reported-by: NMika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
Tested-by: NMika Westerberg <mika.westerberg@linux.intel.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Baolin Wang <baolin.wang@linaro.org>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Link: http://lkml.kernel.org/r/1464807207-16530-2-git-send-email-john.stultz@linaro.orgSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 1a695a90
...@@ -21,6 +21,9 @@ static inline int do_sys_settimeofday(const struct timespec *tv, ...@@ -21,6 +21,9 @@ static inline int do_sys_settimeofday(const struct timespec *tv,
struct timespec64 ts64; struct timespec64 ts64;
if (!tv) if (!tv)
return do_sys_settimeofday64(NULL, tz);
if (!timespec_valid(tv))
return -EINVAL; return -EINVAL;
ts64 = timespec_to_timespec64(*tv); ts64 = timespec_to_timespec64(*tv);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册