mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 22:21:42 +00:00
ALSA: seq: Fix time account regression
The recent rewrite of the sequencer time accounting using timespec64 in the commit [3915bf2946
: ALSA: seq_timer: use monotonic times internally] introduced a bad regression. Namely, the time reported back doesn't increase but goes back and forth. The culprit was obvious: the delta is stored to the result (cur_time = delta), instead of adding the delta (cur_time += delta)! Let's fix it. Fixes:3915bf2946
('ALSA: seq_timer: use monotonic times internally') Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=177571 Reported-by: Yves Guillemot <yc.guillemot@wanadoo.fr> Cc: <stable@vger.kernel.org> # v4.8+ Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
1a3f099101
commit
9b50898ad9
@ -448,8 +448,8 @@ snd_seq_real_time_t snd_seq_timer_get_cur_time(struct snd_seq_timer *tmr)
|
||||
|
||||
ktime_get_ts64(&tm);
|
||||
tm = timespec64_sub(tm, tmr->last_update);
|
||||
cur_time.tv_nsec = tm.tv_nsec;
|
||||
cur_time.tv_sec = tm.tv_sec;
|
||||
cur_time.tv_nsec += tm.tv_nsec;
|
||||
cur_time.tv_sec += tm.tv_sec;
|
||||
snd_seq_sanity_real_time(&cur_time);
|
||||
}
|
||||
spin_unlock_irqrestore(&tmr->lock, flags);
|
||||
|
Loading…
Reference in New Issue
Block a user