From: Ben Hutchings <ben.hutchings@codethink.co.uk>
To: Deepa Dinamani <deepa.kernel@gmail.com>,
tglx@linutronix.de, john.stultz@linaro.org
Cc: y2038@lists.linaro.org, linux-kernel@vger.kernel.org, arnd@arndb.de
Subject: Re: [Y2038] [PATCH v2 08/10] fix get_timespec64() for y2038 safe compat interfaces
Date: Fri, 15 Dec 2017 00:21:50 +0000 [thread overview]
Message-ID: <1513297310.18523.293.camel@codethink.co.uk> (raw)
In-Reply-To: <20171127193037.8711-9-deepa.kernel@gmail.com>
On Mon, 2017-11-27 at 11:30 -0800, Deepa Dinamani wrote:
> get/put_timespec64() interfaces will eventually be used for
> conversions between the new y2038 safe struct __kernel_timespec
> and struct timespec64.
>
> The new y2038 safe syscalls have a common entry for native
> and compat interfaces.
> On compat interfaces, the high order bits of nanoseconds
> should be zeroed out. This is because the application code
> or the libc do not garuntee zeroing of these. If used without
Spelling: "guarantee"
[...]
> --- a/kernel/time/time.c
> +++ b/kernel/time/time.c
[...]
> @@ -851,6 +851,11 @@ int get_timespec64(struct timespec64 *ts,
> return -EFAULT;
>
> ts->tv_sec = kts.tv_sec;
> +
> + /* Zero out the padding for 32 bit systems or in compat mode */
> + if (IS_ENABLED(CONFIG_64BIT_TIME) || !IS_ENABLED(CONFIG_64BIT) || in_compat_syscall())
> + kts.tv_nsec &= 0xFFFFFFFFUL;
[...]
I don't understand the condition here. Suppose we're building for an
architecture that enables the new syscalls and selects ARCH_64BIT_TIME,
but we also enable 64BIT. Then the above condition ends up as:
if (1 || 0 || in_compat_syscall())
so it's always true.
Should the condition be:
if (!IS_ENABLED(CONFIG_64BIT) || in_compat_syscall())
or is your intent that architectures only select ARCH_64BIT_TIME if
64BIT is not enabled?
Ben.
--
Ben Hutchings
Software Developer, Codethink Ltd.
next prev parent reply other threads:[~2017-12-15 0:21 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-27 19:30 [PATCH v2 00/10] posix_clocks: Prepare syscalls for 64 bit time_t conversion Deepa Dinamani
2017-11-27 19:30 ` [PATCH v2 01/10] compat: Make compat helpers independent of CONFIG_COMPAT Deepa Dinamani
2017-11-27 19:30 ` [PATCH v2 02/10] include: Move compat_timespec/ timeval to compat_time.h Deepa Dinamani
2017-11-27 19:30 ` [PATCH v2 03/10] compat: enable compat_get/put_timespec64 always Deepa Dinamani
2017-12-14 23:27 ` [Y2038] " Ben Hutchings
2018-01-07 16:28 ` Deepa Dinamani
2017-11-27 19:30 ` [PATCH v2 04/10] arch: introduce CONFIG_64BIT_TIME Deepa Dinamani
2017-12-14 23:22 ` [Y2038] " Ben Hutchings
2017-11-27 19:30 ` [PATCH v2 05/10] arch: Introduce CONFIG_COMPAT_32BIT_TIME Deepa Dinamani
2017-11-27 19:30 ` [PATCH v2 06/10] posix-clocks: Make compat syscalls depend on CONFIG_COMPAT_32BIT_TIME Deepa Dinamani
2017-11-27 19:30 ` [PATCH v2 07/10] include: Add new y2038 safe __kernel_timespec Deepa Dinamani
2017-12-15 0:11 ` [Y2038] " Ben Hutchings
2017-12-15 10:36 ` Arnd Bergmann
2017-11-27 19:30 ` [PATCH v2 08/10] fix get_timespec64() for y2038 safe compat interfaces Deepa Dinamani
2017-12-15 0:21 ` Ben Hutchings [this message]
2017-12-15 12:02 ` [Y2038] " Arnd Bergmann
2017-12-17 23:51 ` Ben Hutchings
2017-12-18 5:11 ` Deepa Dinamani
2017-11-27 19:30 ` [PATCH v2 09/10] change time types to new y2038 safe __kernel_* types Deepa Dinamani
2017-11-27 19:30 ` [PATCH v2 10/10] nanosleep: change time types to " Deepa Dinamani
2017-12-15 0:31 ` [Y2038] " Ben Hutchings
2017-11-27 21:58 ` [PATCH v2 00/10] posix_clocks: Prepare syscalls for 64 bit time_t conversion Arnd Bergmann
2017-11-27 22:29 ` Deepa Dinamani
2017-11-28 14:17 ` Arnd Bergmann
2017-11-28 23:17 ` Deepa Dinamani
2017-11-29 21:12 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1513297310.18523.293.camel@codethink.co.uk \
--to=ben.hutchings@codethink.co.uk \
--cc=arnd@arndb.de \
--cc=deepa.kernel@gmail.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=y2038@lists.linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome