OSDN Git Service

ALSA: Avoid using timespec for struct snd_rawmidi_status
authorBaolin Wang <baolin.wang@linaro.org>
Tue, 24 Apr 2018 12:06:12 +0000 (20:06 +0800)
committerArnd Bergmann <arnd@arndb.de>
Wed, 11 Dec 2019 21:06:16 +0000 (22:06 +0100)
commitd9e5582c4bb219f3459e39f65410f0e5128fbe91
tree975313dbeab03ffd87b751735e64ece15aee2660
parent3ddee7f88aaf2dee38f7016ac8fd48dd9fdb43e3
ALSA: Avoid using timespec for struct snd_rawmidi_status

The struct snd_rawmidi_status will use 'timespec' type variables to record
timestamp, which is not year 2038 safe on 32bits system.

Thus we introduced 'struct snd_rawmidi_status32' and 'struct snd_rawmidi_status64'
to handle 32bit time_t and 64bit time_t in native mode, which replace
timespec with s64 type.

In compat mode, we renamed or introduced new structures to handle 32bit/64bit
time_t in compatible mode. The 'struct snd_rawmidi_status32' and
snd_rawmidi_ioctl_status32() are used to handle 32bit time_t in compat mode.
'struct compat_snd_rawmidi_status64' is used to handle 64bit time_t.

When glibc changes time_t to 64-bit, any recompiled program will issue ioctl
commands that the kernel does not understand without this patch.

Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
include/uapi/sound/asound.h
sound/core/rawmidi.c
sound/core/rawmidi_compat.c