ALSA: timer: fix nsec/sec initialization confusion
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Sat, 11 Jan 2020 20:33:25 +0000 (14:33 -0600)
committerTakashi Iwai <tiwai@suse.de>
Sun, 12 Jan 2020 08:08:22 +0000 (09:08 +0100)
GCC reports a warning with W=1:

sound/core/timer.c: In function ‘snd_timer_user_read’:
sound/core/timer.c:2219:19: warning: initialized field overwritten
[-Woverride-init]
 2219 |     .tstamp_sec = tread->tstamp_nsec,
      |                   ^~~~~
sound/core/timer.c:2219:19: note: (near initialization for
‘(anonymous).tstamp_sec’)

Assigning nsec values to sec fields is problematic in general, even
more so when the initial goal was to survive the 2030 timer
armageddon.

Fix by using the proper field in the initialization

Cc: Baolin Wang <baolin.wang@linaro.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Fixes: 07094ae6f9527 ("ALSA: Avoid using timespec for struct snd_timer_tread")
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20200111203325.20498-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/timer.c

index 8835ff91a89374bbb6ff37c47dfa25143d99ce2f..d9f85f2d66a3d3abb6e3223c71209d219d9f8355 100644 (file)
@@ -2216,7 +2216,7 @@ static ssize_t snd_timer_user_read(struct file *file, char __user *buffer,
                        tread32 = (struct snd_timer_tread32) {
                                .event = tread->event,
                                .tstamp_sec = tread->tstamp_sec,
-                               .tstamp_sec = tread->tstamp_nsec,
+                               .tstamp_nsec = tread->tstamp_nsec,
                                .val = tread->val,
                        };