Bläddra i källkod

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>
Takashi Iwai 9 år sedan
förälder
incheckning
3a72494ac2
1 ändrade filer med 3 tillägg och 2 borttagningar
  1. 3 2
      sound/core/timer_compat.c

+ 3 - 2
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_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;