--- qemu-3.0.0/hw/input/virtio-input-host.c.old 2018-08-14 19:10:34.000000000 +0000 +++ qemu-3.0.0/hw/input/virtio-input-host.c 2020-01-24 06:12:08.788062930 +0000 @@ -193,13 +193,16 @@ { VirtIOInputHost *vih = VIRTIO_INPUT_HOST(vinput); struct input_event evdev; + struct timeval tv; int rc; - if (gettimeofday(&evdev.time, NULL)) { + if (gettimeofday(&tv, NULL)) { perror("virtio_input_host_handle_status: gettimeofday"); return; } + evdev.input_event_sec = tv.tv_sec; + evdev.input_event_usec = tv.tv_usec; evdev.type = le16_to_cpu(event->type); evdev.code = le16_to_cpu(event->code); evdev.value = le32_to_cpu(event->value); --- qemu-4.2.0/contrib/vhost-user-input/main.c.old 2019-12-12 18:20:47.000000000 +0000 +++ qemu-4.2.0/contrib/vhost-user-input/main.c 2020-06-15 04:46:15.198762807 +0000 @@ -115,13 +115,16 @@ static void vi_handle_status(VuInput *vi, virtio_input_event *event) { struct input_event evdev; + struct timeval tv; int rc; - if (gettimeofday(&evdev.time, NULL)) { + if (gettimeofday(&tv, NULL)) { perror("vi_handle_status: gettimeofday"); return; } + evdev.input_event_sec = tv.tv_sec; + evdev.input_event_usec = tv.tv_usec; evdev.type = le16toh(event->type); evdev.code = le16toh(event->code); evdev.value = le32toh(event->value);