]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit83a222734e762f575ab45bccec53738bc486a71b
tree975313dbeab03ffd87b751735e64ece15aee2660
parent9d04424bdd29933df1e589077b9a1ea2e6dec913
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