Thread (60 messages) 60 messages, 5 authors, 2019-02-28

Re: [PATCH v5 02/23] kernel: Define gettimeofday vdso common code

From: Arnd Bergmann <arnd@arndb.de>
Date: 2019-02-28 09:30:18
Also in: linux-arch

On Wed, Feb 27, 2019 at 3:52 PM Vincenzo Frascino
[off-list ref] wrote:
On 22/02/2019 13:49, Arnd Bergmann wrote:
quoted
On Fri, Feb 22, 2019 at 1:25 PM Vincenzo Frascino
[off-list ref] wrote:
quoted
+/*
+ * The definitions below are required to overcome the limitations
+ * of time_t on 32 bit architectures, which overflows in 2038.
+ * The new code should use the replacements based on time64_t and
+ * timespec64.
+ *
+ * The abstraction below will be updated once the migration to
+ * time64_t is complete.
+ */
+#ifdef CONFIG_GENERIC_VDSO_32
+#define __vdso_timespec                old_timespec32
+#define __vdso_timeval         old_timeval32
+#else
+#ifdef ENABLE_COMPAT_VDSO
+#define __vdso_timespec                old_timespec32
+#define __vdso_timeval         old_timeval32
+#else
+#define __vdso_timespec                __kernel_timespec
+#define __vdso_timeval         __kernel_old_timeval
+#endif /* CONFIG_COMPAT_VDSO */
+#endif /* CONFIG_GENERIC_VDSO_32 */
quoted
For __vdso_timespec, I see how you ended up with this
redefinition, and it makes the current version of your patches
easier, but I fear it will in turn make it harder to add the
__kernel_old_timeval based variant.
What is __kernel_old_timespec (based on you next email)? Why do you think it
will make harder to add the new variants?
I mean you should ideally use the types that you have listed above
directly, without the abstraction.

In the long run I want one set of functions using __kernel_timespec that
implements the 64-bit time interfaces on both 32-bit and 64-bit kernels,
including the compat vdso, and another set using old_timespec32 for
just the native 32-bit and compat version.

This would match what we do in the normal system calls (in linux-5.1+),
where we always have the regular implementation use 64-bit types
only, and have an optional _time32 version that is used for existing
32-bit user space, on both native 32 bit kernels and compat syscalls
on 64-bit.

       Arnd

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help