summaryrefslogtreecommitdiff
path: root/sound/core/timer_compat.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2016-02-28 10:36:14 (GMT)
committerTakashi Iwai <tiwai@suse.de>2016-02-28 16:48:11 (GMT)
commit3a72494ac2a3bd229db941d51e7efe2f6ccd947b (patch)
tree66ff2b9ec5543c882b6a02e84fbbba0355f01c1f /sound/core/timer_compat.c
parent2251fbbc1539f05b0b206b37a602d5776be37252 (diff)
downloadlinux-3a72494ac2a3bd229db941d51e7efe2f6ccd947b.tar.xz
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>
Diffstat (limited to 'sound/core/timer_compat.c')
-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 e05802a..8e7eddf 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;