Before this, I have discussed this problem with Arnd. And Arnd have an idea that by converting timeval to long / long in input_event, so that input_event structure size will be unchanged, and timeval structure will removed entirely. But we also need to avoid using CLOCK_REALTIME in userland, to keep the new input_event structure y2038 safe. The input_event will only support monotonic time in Arnd's idea. And we still need to add wall time support for old 32-bit binary. Those patches try to keep original input capacity, and resolve y2038 problem in input_event radically. struct input_event is only used between kernel and userspace communication (except uinput). So that we can replace input_event with input_event64 in kernel entirely, and add a conversion in input_event_from/to_user() to keep compatible with old 32-bits binary. userland can switch to input_event64, which is y2038 safe, via ioctl. WEN Pingbo (3): evdev: convert input_event to input_event64 evdev: add new ioctl EVIOCSEVENT / EVIOCGEVENT uinput: convert input_event to input_event64 drivers/input/evdev.c | 38 ++++++++++++------- drivers/input/input-compat.c | 88 +++++++++++++++++++++++++++++++++++++------- drivers/input/input-compat.h | 9 +++-- drivers/input/misc/uinput.c | 17 ++++++--- include/linux/uinput.h | 2 +- include/uapi/linux/input.h | 18 +++++++++ 6 files changed, 134 insertions(+), 38 deletions(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html