Commit b5fd419e authored by Takashi Iwai's avatar Takashi Iwai Committed by Tim Gardner

ALSA: timer: Fix broken compat timer user status ioctl

BugLink: http://bugs.launchpad.net/bugs/1555640

commit 3a72494a upstream.

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.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarTim Gardner <tim.gardner@canonical.com>
parent c7d333cb
...@@ -70,13 +70,14 @@ static int snd_timer_user_status_compat(struct file *file, ...@@ -70,13 +70,14 @@ static int snd_timer_user_status_compat(struct file *file,
struct snd_timer_status32 __user *_status) struct snd_timer_status32 __user *_status)
{ {
struct snd_timer_user *tu; struct snd_timer_user *tu;
struct snd_timer_status status; struct snd_timer_status32 status;
tu = file->private_data; tu = file->private_data;
if (snd_BUG_ON(!tu->timeri)) if (snd_BUG_ON(!tu->timeri))
return -ENXIO; return -ENXIO;
memset(&status, 0, sizeof(status)); 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.resolution = snd_timer_resolution(tu->timeri);
status.lost = tu->timeri->lost; status.lost = tu->timeri->lost;
status.overrun = tu->overrun; status.overrun = tu->overrun;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment