kernel-fxtec-pro1x/kernel/time
Srinivas Ramana 7f311acbfb hrtimer: Initialize cpu_base.next_timer to NULL conditionally
hrtimer_cpu_base.next_timer stores the pointer to the next expiring timer
in a CPU base. This pointer is used to check whether a hrtimer which is
removed is the hrtimer which is the first to expire in the CPU base.

To get the estimated sleep length cpuidle_select call from governor depends
on hrtimer_next_event_without() which does __hrtimer_get_next_event()
excluding tick_sched_timer.

cpu_base.next_timer is made NULL unconditionally but actual timer
assignment is skipped in case of exclude call. So this pointer stays
NULL and we skip programming the hrtimer event even though the hrtimer
being removed is the first one to expire. This may result in an unwanted
old event getting triggered.

Fix this by initializing cpu_base.next_timer to NULL only for non exclude
calls.

Change-Id: I3c64f34e487e224a6a3b75a840869fc1371dd5b7
Signed-off-by: Srinivas Ramana <sramana@codeaurora.org>
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
2019-03-25 10:35:22 -07:00
..
alarmtimer.c
clockevents.c clockevents: Warn if cpu_all_mask is used as cpumask 2018-08-02 14:55:53 +02:00
clocksource.c Merge remote-tracking branch 'origin/tmp-11da3a7' into msm-kona 2018-09-14 11:24:01 -07:00
hrtimer.c hrtimer: Initialize cpu_base.next_timer to NULL conditionally 2019-03-25 10:35:22 -07:00
itimer.c pid: Implement PIDTYPE_TGID 2018-07-21 10:43:12 -05:00
jiffies.c
Kconfig
Makefile
ntp.c timekeeping/ntp: Constify some function arguments 2018-07-19 17:08:05 -07:00
ntp_internal.h timekeeping/ntp: Constify some function arguments 2018-07-19 17:08:05 -07:00
posix-clock.c
posix-cpu-timers.c posix-cpu-timers: Unbreak timer rearming 2019-01-31 08:14:39 +01:00
posix-stubs.c
posix-timers.c posix-timers: Fix division by zero bug 2018-12-29 13:37:56 +01:00
posix-timers.h
sched_clock.c timers, sched/clock: Hook into s2idle freeze path 2019-03-15 12:01:11 +05:30
test_udelay.c
tick-broadcast-hrtimer.c tick/broadcast-hrtimer: Use cpu_possible_mask for ce_broadcast_hrtimer 2018-08-02 14:55:52 +02:00
tick-broadcast.c
tick-common.c timers, sched/clock: Hook into s2idle freeze path 2019-03-15 12:01:11 +05:30
tick-internal.h kernel: time: Add delay after cpu_relax() in tight loops 2019-01-11 15:19:12 -08:00
tick-oneshot.c
tick-sched.c soc: qcom: rq_stats: clean up the rq_stats 2019-03-14 13:31:07 -07:00
tick-sched.h
time.c
timeconst.bc
timeconv.c
timecounter.c
timekeeping.c timekeeping: Use proper seqcount initializer 2019-02-12 19:47:05 +01:00
timekeeping.h
timekeeping_debug.c timekeeping/ntp: Constify some function arguments 2018-07-19 17:08:05 -07:00
timekeeping_internal.h timekeeping/ntp: Constify some function arguments 2018-07-19 17:08:05 -07:00
timer.c sched: Add a check for cpu unbound deferrable timers 2019-01-13 23:39:23 -08:00
timer_list.c