diff options
| author | Vignesh Raghavendra <vigneshr@ti.com> | 2022-06-04 13:32:19 +0530 |
|---|---|---|
| committer | Vignesh Raghavendra <vigneshr@ti.com> | 2022-06-04 13:32:19 +0530 |
| commit | de63dee020025075c6962f6b536797bc3af3e970 (patch) | |
| tree | 89173487fdaabb029dfb1b0a6b68484ec3edef35 /kernel/time/timer.c | |
| parent | cc13f3f3acad08038b76f5f26f66151c136d1eaf (diff) | |
| parent | e61686bb77c441d8e5f10dc063e2cea799e4aae6 (diff) | |
Merge tag 'v5.10.115' of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux into ti-linux-5.10.y
This is the 5.10.115 stable release
* tag 'v5.10.115' of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux: (1162 commits)
Linux 5.10.115
mmc: rtsx: add 74 Clocks in power on flow
PCI: aardvark: Fix reading MSI interrupt number
PCI: aardvark: Clear all MSIs at setup
dm: interlock pending dm_io and dm_wait_for_bios_completion
block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern
rcu: Apply callbacks processing time limit only on softirq
rcu: Fix callbacks processing time limit retaining cond_resched()
KVM: LAPIC: Enable timer posted-interrupt only when mwait/hlt is advertised
KVM: x86/mmu: avoid NULL-pointer dereference on page freeing bugs
KVM: x86: Do not change ICR on write to APIC_SELF_IPI
x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume
net/mlx5: Fix slab-out-of-bounds while reading resource dump menu
kvm: x86/cpuid: Only provide CPUID leaf 0xA if host has architectural PMU
net: igmp: respect RCU rules in ip_mc_source() and ip_mc_msfilter()
btrfs: always log symlinks in full mode
smsc911x: allow using IRQ0
selftests: ocelot: tc_flower_chains: specify conform-exceed action for policer
bnxt_en: Fix unnecessary dropping of RX packets
bnxt_en: Fix possible bnxt_open() failure caused by wrong RFS flag
...
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Diffstat (limited to 'kernel/time/timer.c')
| -rw-r--r-- | kernel/time/timer.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/kernel/time/timer.c b/kernel/time/timer.c index a3ec21be3b14..e87e638c31bd 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -1738,11 +1738,14 @@ static inline void __run_timers(struct timer_base *base) time_after_eq(jiffies, base->next_expiry)) { levels = collect_expired_timers(base, heads); /* - * The only possible reason for not finding any expired - * timer at this clk is that all matching timers have been - * dequeued. + * The two possible reasons for not finding any expired + * timer at this clk are that all matching timers have been + * dequeued or no timer has been queued since + * base::next_expiry was set to base::clk + + * NEXT_TIMER_MAX_DELTA. */ - WARN_ON_ONCE(!levels && !base->next_expiry_recalc); + WARN_ON_ONCE(!levels && !base->next_expiry_recalc + && base->timers_pending); base->clk++; base->next_expiry = __next_timer_interrupt(base); |
