diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2012-10-27 21:55:27 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-10-28 09:52:37 +0100 |
commit | 9c7066aef4a5eb8e4063de28f06c508bf6f2963a (patch) | |
tree | 845a0f48868cf4b2917afe6582b1c4b15080d80b /include/uapi/sound | |
parent | ALSA: au88x0: Give comment for vortex_wtdma_bufshift() issue (diff) | |
download | linux-9c7066aef4a5eb8e4063de28f06c508bf6f2963a.tar.xz linux-9c7066aef4a5eb8e4063de28f06c508bf6f2963a.zip |
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 <clemens@ladisch.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'include/uapi/sound')
-rw-r--r-- | include/uapi/sound/asound.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/uapi/sound/asound.h b/include/uapi/sound/asound.h index 85b2e4dde883..515b8fcd1ca9 100644 --- a/include/uapi/sound/asound.h +++ b/include/uapi/sound/asound.h @@ -407,8 +407,9 @@ struct snd_pcm_status { snd_pcm_uframes_t avail_max; /* max frames available on hw since last status */ snd_pcm_uframes_t overrange; /* count of ADC (capture) overrange detections from last status */ snd_pcm_state_t suspended_state; /* suspended stream state */ + __u32 reserved_alignment; /* must be filled with zero */ struct timespec audio_tstamp; /* from sample counter or wall clock */ - unsigned char reserved[60-sizeof(struct timespec)]; /* must be filled with zero */ + unsigned char reserved[56-sizeof(struct timespec)]; /* must be filled with zero */ }; struct snd_pcm_mmap_status { |