summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2016-02-28 11:36:14 +0100
committerTakashi Iwai <tiwai@suse.de>2016-02-28 17:48:11 +0100
commit3a72494ac2a3bd229db941d51e7efe2f6ccd947b (patch)
tree66ff2b9ec5543c882b6a02e84fbbba0355f01c1f
parent2251fbbc1539f05b0b206b37a602d5776be37252 (diff)
downloadlinux-3a72494ac2a3bd229db941d51e7efe2f6ccd947b.tar.gz
linux-3a72494ac2a3bd229db941d51e7efe2f6ccd947b.tar.bz2
linux-3a72494ac2a3bd229db941d51e7efe2f6ccd947b.zip
ALSA: timer: Fix broken compat timer user status ioctl
The timer user status compat ioctl returned the bogus struct used for 64bit architectures instead of the 32bit one. This patch addresses it to return the proper struct. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/core/timer_compat.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sound/core/timer_compat.c b/sound/core/timer_compat.c
index e05802ae6e1b..8e7eddf35c6a 100644
--- a/sound/core/timer_compat.c
+++ b/sound/core/timer_compat.c
@@ -70,13 +70,14 @@ static int snd_timer_user_status_compat(struct file *file,
struct snd_timer_status32 __user *_status)
{
struct snd_timer_user *tu;
- struct snd_timer_status status;
+ struct snd_timer_status32 status;
tu = file->private_data;
if (snd_BUG_ON(!tu->timeri))
return -ENXIO;
memset(&status, 0, sizeof(status));
- status.tstamp = tu->tstamp;
+ status.tstamp.tv_sec = tu->tstamp.tv_sec;
+ status.tstamp.tv_nsec = tu->tstamp.tv_nsec;
status.resolution = snd_timer_resolution(tu->timeri);
status.lost = tu->timeri->lost;
status.overrun = tu->overrun;