]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ALSA: timer: Fix broken compat timer user status ioctl
authorTakashi Iwai <tiwai@suse.de>
Sun, 28 Feb 2016 10:36:14 +0000 (11:36 +0100)
committerLuis Henriques <luis.henriques@canonical.com>
Thu, 24 Mar 2016 10:00:55 +0000 (10:00 +0000)
commit 3a72494ac2a3bd229db941d51e7efe2f6ccd947b 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: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
sound/core/timer_compat.c

index e05802ae6e1b1e240a187a43c9f5308fcf7145c0..8e7eddf35c6a4c170b513c0ca0b7ebc68721dbdb 100644 (file)
@@ -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;