[RFC PATCH v2 0/7] Fix year 2038 issue for sound subsystem

From: Baolin Wang
Date: Thu Nov 02 2017 - 07:08:07 EST


Since many structures will use timespec type variables to record time stamp
in uapi/asound.h, which are not year 2038 safe on 32bit system. This patchset
tries to introduce new structures removing timespec type to compatible native
mode and compat mode.

Moreover this patchset also converts the internal structrures to use timespec64
type and related APIs.

Changes since v1:
- Flat all structues to make them more clear.
- Re-modify the convertion for struct snd_timer_tread.
- Use same coding style when converting struct snd_rawmidi_status.
- Use struct snd_timer_user_status64 in compat mode directly when converting
struct snd_timer_status.
- Add #ifdef __KERNEL__ when converting struct snd_ctl_elem_value.
- Re-modify the convertion for struct snd_pcm_sync_ptr.
- Fix some building errors.

Appreciated for any comments, especially for patch6 which I am not sure if it
is correct.

Baolin Wang (7):
sound: Replace timespec with timespec64
sound: core: Avoid using timespec for struct snd_pcm_status
sound: core: Avoid using timespec for struct snd_rawmidi_status
sound: core: Avoid using timespec for struct snd_timer_status
uapi: sound: Avoid using timespec for struct snd_ctl_elem_value
sound: core: Avoid using timespec for struct snd_pcm_sync_ptr
sound: core: Avoid using timespec for struct snd_timer_tread

include/sound/pcm.h | 126 +++++++++-
include/sound/timer.h | 4 +-
include/uapi/sound/asound.h | 19 +-
sound/core/pcm.c | 20 +-
sound/core/pcm_compat.c | 469 ++++++++++++++++++++++++++++---------
sound/core/pcm_lib.c | 33 ++-
sound/core/pcm_native.c | 220 +++++++++++++----
sound/core/rawmidi.c | 81 ++++++-
sound/core/rawmidi_compat.c | 121 +++++++---
sound/core/timer.c | 253 ++++++++++++++++----
sound/core/timer_compat.c | 67 ++----
sound/pci/hda/hda_controller.c | 10 +-
sound/soc/intel/skylake/skl-pcm.c | 4 +-
13 files changed, 1090 insertions(+), 337 deletions(-)

--
1.7.9.5