• Baolin Wang's avatar
    ALSA: Avoid using timespec for struct snd_timer_status · a07804cc
    Baolin Wang authored
    struct snd_timer_status uses 'timespec' type variables to record
    timestamp, which will be changed to an incompatible layout with
    updated user space using 64-bit time_t.
    
    To handle both the old and the new layout on 32-bit architectures,
    this patch introduces 'struct snd_timer_status32' and 'struct snd_timer_status64'
    to handle 32bit time_t and 64bit time_t in native mode and compat mode,
    which replaces timespec with s64 type.
    
    When glibc changes time_t to 64-bit, any recompiled program will issue
    ioctl commands that the kernel does not understand without this patch.
    
    In the public uapi header, snd_timer_status is now guarded by
    an #ifndef __KERNEL__ to avoid referencing 'struct timespec'.
    The timespec definition will be removed from the kernel to prevent
    new y2038 bugs and to avoid the conflict with an incompatible libc
    type of the same name.
    Signed-off-by: default avatarBaolin Wang <baolin.wang@linaro.org>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    a07804cc
timer_compat.c 3.49 KB