summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2016-02-28 11:36:14 +0100
committerSasha Levin <sasha.levin@oracle.com>2016-03-11 09:45:23 -0500
commit803c982725b28e0a50f11ddbb14fe2dbcc23eef2 (patch)
treec0677751851793743545305889c9e5e7208333f3
parent58dff559bf681260612aef1e5943325be2117604 (diff)
downloadlinux-stable-803c982725b28e0a50f11ddbb14fe2dbcc23eef2.tar.gz
linux-stable-803c982725b28e0a50f11ddbb14fe2dbcc23eef2.tar.bz2
linux-stable-803c982725b28e0a50f11ddbb14fe2dbcc23eef2.zip
ALSA: timer: Fix broken compat timer user status ioctl
[ Upstream commit 3a72494ac2a3bd229db941d51e7efe2f6ccd947b ] 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> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
-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;