[alsa-devel] [PATCH] ALSA: timer: fix nsec/sec initialization confusion
Arnd Bergmann
arnd at arndb.de
Sat Jan 11 21:41:45 CET 2020
On Sat, Jan 11, 2020 at 9:33 PM Pierre-Louis Bossart
<pierre-louis.bossart at linux.intel.com> wrote:
>
> 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 at linaro.org>
> Cc: Arnd Bergmann <arnd at arndb.de>
Good catch!
Acked-by: Arnd Bergmann <arnd at arndb.de>
> Fixes: 07094ae6f9527 ("ALSA: Avoid using timespec for struct snd_timer_tread")
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> ---
> sound/core/timer.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/core/timer.c b/sound/core/timer.c
> index 8835ff91a893..d9f85f2d66a3 100644
> --- a/sound/core/timer.c
> +++ b/sound/core/timer.c
> @@ -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,
> };
>
> --
> 2.20.1
>
More information about the Alsa-devel
mailing list