* [PATCH] input_event: Provide override for sparc64
@ 2018-12-29 18:35 Deepa Dinamani
2019-01-14 4:37 ` Deepa Dinamani
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Deepa Dinamani @ 2018-12-29 18:35 UTC (permalink / raw)
To: dmitry.torokhov; +Cc: linux-input, linux-kernel, arnd, davem, y2038
The usec part of the timeval is defined as
__kernel_suseconds_t tv_usec; /* microseconds */
Arnd noticed that sparc64 is the only architecture
that defines __kernel_suseconds_t as int rather than long.
This breaks the current y2038 fix for kernel as we only
access and define the timeval struct for non-kernel use cases.
But, this was hidden by an another typo in the use of __KERNEL__
qualifier.
Fix the typo, and provide an override for sparc64.
Fixes: 152194fe9c3f ("Input: extend usable life of event timestamps to 2106 on 32 bit systems")
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
---
include/uapi/linux/input.h | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h
index fb78f6f500f3..ffab958bc512 100644
--- a/include/uapi/linux/input.h
+++ b/include/uapi/linux/input.h
@@ -26,13 +26,17 @@
*/
struct input_event {
-#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL)
+#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL__)
struct timeval time;
#define input_event_sec time.tv_sec
#define input_event_usec time.tv_usec
#else
__kernel_ulong_t __sec;
+#ifdef CONFIG_SPARC64
+ unsigned int __usec;
+#else
__kernel_ulong_t __usec;
+#endif
#define input_event_sec __sec
#define input_event_usec __usec
#endif
--
2.17.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] input_event: Provide override for sparc64
2018-12-29 18:35 [PATCH] input_event: Provide override for sparc64 Deepa Dinamani
@ 2019-01-14 4:37 ` Deepa Dinamani
2019-01-14 6:52 ` Dmitry Torokhov
2019-01-15 21:19 ` Arnd Bergmann
2 siblings, 0 replies; 7+ messages in thread
From: Deepa Dinamani @ 2019-01-14 4:37 UTC (permalink / raw)
To: dmitry.torokhov; +Cc: linux-input, linux-kernel, arnd, davem, y2038
> On Dec 29, 2018, at 10:35 AM, Deepa Dinamani <deepa.kernel@gmail.com> wrote:
>
> The usec part of the timeval is defined as
> __kernel_suseconds_t tv_usec; /* microseconds */
>
> Arnd noticed that sparc64 is the only architecture
> that defines __kernel_suseconds_t as int rather than long.
>
> This breaks the current y2038 fix for kernel as we only
> access and define the timeval struct for non-kernel use cases.
> But, this was hidden by an another typo in the use of __KERNEL__
> qualifier.
>
> Fix the typo, and provide an override for sparc64.
>
> Fixes: 152194fe9c3f ("Input: extend usable life of event timestamps to 2106 on 32 bit systems")
> Reported-by: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
> ---
> include/uapi/linux/input.h | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h
> index fb78f6f500f3..ffab958bc512 100644
> --- a/include/uapi/linux/input.h
> +++ b/include/uapi/linux/input.h
> @@ -26,13 +26,17 @@
> */
>
> struct input_event {
> -#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL)
> +#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL__)
> struct timeval time;
> #define input_event_sec time.tv_sec
> #define input_event_usec time.tv_usec
> #else
> __kernel_ulong_t __sec;
> +#ifdef CONFIG_SPARC64
> + unsigned int __usec;
> +#else
> __kernel_ulong_t __usec;
> +#endif
> #define input_event_sec __sec
> #define input_event_usec __usec
> #endif
> --
> 2.17.1
Ping.
This is required for the proper functioning of the y2038 additions to input event.
-Deepa
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] input_event: Provide override for sparc64
2018-12-29 18:35 [PATCH] input_event: Provide override for sparc64 Deepa Dinamani
2019-01-14 4:37 ` Deepa Dinamani
@ 2019-01-14 6:52 ` Dmitry Torokhov
2019-01-15 21:19 ` Arnd Bergmann
2 siblings, 0 replies; 7+ messages in thread
From: Dmitry Torokhov @ 2019-01-14 6:52 UTC (permalink / raw)
To: Deepa Dinamani; +Cc: linux-input, linux-kernel, arnd, davem, y2038
On Sat, Dec 29, 2018 at 10:35:14AM -0800, Deepa Dinamani wrote:
> The usec part of the timeval is defined as
> __kernel_suseconds_t tv_usec; /* microseconds */
>
> Arnd noticed that sparc64 is the only architecture
> that defines __kernel_suseconds_t as int rather than long.
>
> This breaks the current y2038 fix for kernel as we only
> access and define the timeval struct for non-kernel use cases.
> But, this was hidden by an another typo in the use of __KERNEL__
> qualifier.
>
> Fix the typo, and provide an override for sparc64.
>
> Fixes: 152194fe9c3f ("Input: extend usable life of event timestamps to 2106 on 32 bit systems")
> Reported-by: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
Applied, thank you.
> ---
> include/uapi/linux/input.h | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h
> index fb78f6f500f3..ffab958bc512 100644
> --- a/include/uapi/linux/input.h
> +++ b/include/uapi/linux/input.h
> @@ -26,13 +26,17 @@
> */
>
> struct input_event {
> -#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL)
> +#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL__)
> struct timeval time;
> #define input_event_sec time.tv_sec
> #define input_event_usec time.tv_usec
> #else
> __kernel_ulong_t __sec;
> +#ifdef CONFIG_SPARC64
> + unsigned int __usec;
> +#else
> __kernel_ulong_t __usec;
> +#endif
> #define input_event_sec __sec
> #define input_event_usec __usec
> #endif
> --
> 2.17.1
>
--
Dmitry
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] input_event: Provide override for sparc64
2018-12-29 18:35 [PATCH] input_event: Provide override for sparc64 Deepa Dinamani
2019-01-14 4:37 ` Deepa Dinamani
2019-01-14 6:52 ` Dmitry Torokhov
@ 2019-01-15 21:19 ` Arnd Bergmann
2019-01-15 21:29 ` David Miller
2 siblings, 1 reply; 7+ messages in thread
From: Arnd Bergmann @ 2019-01-15 21:19 UTC (permalink / raw)
To: Deepa Dinamani
Cc: Dmitry Torokhov, open list:HID CORE LAYER,
Linux Kernel Mailing List, David Miller, y2038 Mailman List
On Sat, Dec 29, 2018 at 7:35 PM Deepa Dinamani <deepa.kernel@gmail.com> wrote:
> struct timeval time;
> #define input_event_sec time.tv_sec
> #define input_event_usec time.tv_usec
> #else
> __kernel_ulong_t __sec;
> +#ifdef CONFIG_SPARC64
> + unsigned int __usec;
> +#else
> __kernel_ulong_t __usec;
> +#endif
> #define input_event_sec __sec
> #define input_event_usec __usec
> #endif
Sorry for not having looked at this earlier, I just realized that this
is a mistake
in user space: uapi headers are not allowed to reference CONFIG_* symbols,
since the headers are supposed to be configuration independent and the
CONFIG_* namespace might clash with user space identifiers.
The correct check appears to be
#if defined(__sparc__) && defined(__arch64__)
Arnd
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] input_event: Provide override for sparc64
2019-01-15 21:19 ` Arnd Bergmann
@ 2019-01-15 21:29 ` David Miller
2019-01-15 22:32 ` Dmitry Torokhov
0 siblings, 1 reply; 7+ messages in thread
From: David Miller @ 2019-01-15 21:29 UTC (permalink / raw)
To: arnd; +Cc: deepa.kernel, dmitry.torokhov, linux-input, linux-kernel, y2038
From: Arnd Bergmann <arnd@arndb.de>
Date: Tue, 15 Jan 2019 22:19:27 +0100
> The correct check appears to be
>
> #if defined(__sparc__) && defined(__arch64__)
That is correct.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] input_event: Provide override for sparc64
2019-01-15 21:29 ` David Miller
@ 2019-01-15 22:32 ` Dmitry Torokhov
2019-01-16 0:10 ` Deepa Dinamani
0 siblings, 1 reply; 7+ messages in thread
From: Dmitry Torokhov @ 2019-01-15 22:32 UTC (permalink / raw)
To: Deepa Dinamani
Cc: Arnd Bergmann, linux-input, lkml, y2038 Mailman List, David Miller
On Tue, Jan 15, 2019 at 1:29 PM David Miller <davem@davemloft.net> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
> Date: Tue, 15 Jan 2019 22:19:27 +0100
>
> > The correct check appears to be
> >
> > #if defined(__sparc__) && defined(__arch64__)
>
> That is correct.
OK. Deepa, could you please send me a fixup as I already pushed out
the original patch?
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] input_event: Provide override for sparc64
2019-01-15 22:32 ` Dmitry Torokhov
@ 2019-01-16 0:10 ` Deepa Dinamani
0 siblings, 0 replies; 7+ messages in thread
From: Deepa Dinamani @ 2019-01-16 0:10 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Arnd Bergmann, linux-input, lkml, y2038 Mailman List, David Miller
> On Jan 15, 2019, at 2:32 PM, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote:
>
>> On Tue, Jan 15, 2019 at 1:29 PM David Miller <davem@davemloft.net> wrote:
>>
>> From: Arnd Bergmann <arnd@arndb.de>
>> Date: Tue, 15 Jan 2019 22:19:27 +0100
>>
>>> The correct check appears to be
>>>
>>> #if defined(__sparc__) && defined(__arch64__)
>>
>> That is correct.
>
> OK. Deepa, could you please send me a fixup as I already pushed out
> the original patch?
Ok, I’m traveling. I will post an update in a couple of days.
Thanks,
Deepa
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-01-16 0:11 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-29 18:35 [PATCH] input_event: Provide override for sparc64 Deepa Dinamani
2019-01-14 4:37 ` Deepa Dinamani
2019-01-14 6:52 ` Dmitry Torokhov
2019-01-15 21:19 ` Arnd Bergmann
2019-01-15 21:29 ` David Miller
2019-01-15 22:32 ` Dmitry Torokhov
2019-01-16 0:10 ` Deepa Dinamani
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).