From 9c7066aef4a5eb8e4063de28f06c508bf6f2963a Mon Sep 17 00:00:00 2001 From: Clemens Ladisch Date: Sat, 27 Oct 2012 21:55:27 +0200 Subject: ALSA: core: fix 64-bit SNDRV_PCM_IOCTL_STATUS ABI breakage Commit 4eeaaeaea (ALSA: core: add hooks for audio timestamps) added the new audio_tstamp field to struct snd_pcm_status. However, struct timespec requires 64-bit alignment, so the 64-bit compiler would insert 32 bits of padding before this field, which broke SNDRV_PCM_IOCTL_STATUS with error messages like this: kernel: unknown ioctl = 0x80984120 To solve this, insert the padding explicitly so that it can be taken into account when calculating the ABI structure size. Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai --- sound/core/pcm_compat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sound/core') diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c index af2a3fdb8828..af49721ba0e3 100644 --- a/sound/core/pcm_compat.c +++ b/sound/core/pcm_compat.c @@ -190,8 +190,9 @@ struct snd_pcm_status32 { u32 avail_max; u32 overrange; s32 suspended_state; + u32 reserved_alignment; struct compat_timespec audio_tstamp; - unsigned char reserved[60-sizeof(struct compat_timespec)]; + unsigned char reserved[56-sizeof(struct compat_timespec)]; } __attribute__((packed)); -- cgit v1.2.3