From: Linus Torvalds Date: Thu, 6 Jan 2011 18:42:43 +0000 (-0800) Subject: Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git... X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=dda5f0a372873bca5f0b1d1866d7784dffd8b675;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git Merge branch 'timers-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip * 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: MAINTAINERS: Update timer related entries timers: Use this_cpu_read timerqueue: Make timerqueue_getnext() static inline hrtimer: fix timerqueue conversion flub hrtimers: Convert hrtimers to use timerlist infrastructure timers: Fixup allmodconfig build issue timers: Rename timerlist infrastructure to timerqueue timers: Introduce timerlist infrastructure. hrtimer: Remove stale comment on curr_timer timer: Warn when del_timer_sync() is called in hardirq context timer: Del_timer_sync() can be used in softirq context timer: Make try_to_del_timer_sync() the same on SMP and UP posix-timers: Annotate lock_timer() timer: Permit statically-declared work with deferrable timers time: Use ARRAY_SIZE macro in timecompare.c timer: Initialize the field slack of timer_list timer_list: Remove alignment padding on 64 bit when CONFIG_TIMER_STATS time: Compensate for rounding on odd-frequency clocksources Fix up trivial conflict in MAINTAINERS --- dda5f0a372873bca5f0b1d1866d7784dffd8b675 diff --cc MAINTAINERS index b1dda78a1e75,2a1b25673d3e..c5c7292daba0 --- a/MAINTAINERS +++ b/MAINTAINERS @@@ -5136,12 -4990,18 +5140,24 @@@ F: drivers/media/common/saa7146 F: drivers/media/video/*7146* F: include/media/*7146* +SAMSUNG AUDIO (ASoC) DRIVERS +M: Jassi Brar +L: alsa-devel@alsa-project.org (moderated for non-subscribers) +S: Supported +F: sound/soc/s3c24xx + + TIMEKEEPING, NTP + M: John Stultz + M: Thomas Gleixner + S: Supported + F: include/linux/clocksource.h + F: include/linux/time.h + F: include/linux/timex.h + F: include/linux/timekeeping.h + F: kernel/time/clocksource.c + F: kernel/time/time*.c + F: kernel/time/ntp.c + TLG2300 VIDEO4LINUX-2 DRIVER M: Huang Shijie M: Kang Yong diff --cc kernel/timer.c index 353b9227c2ec,beb97fd11ac2..43ca9936f2d0 --- a/kernel/timer.c +++ b/kernel/timer.c @@@ -1249,15 -1227,9 +1227,15 @@@ static unsigned long cmp_next_hrtimer_e */ unsigned long get_next_timer_interrupt(unsigned long now) { - struct tvec_base *base = __get_cpu_var(tvec_bases); + struct tvec_base *base = __this_cpu_read(tvec_bases); unsigned long expires; + /* + * Pretend that there is no timer pending if the cpu is offline. + * Possible pending timers will be migrated later to an active cpu. + */ + if (cpu_is_offline(smp_processor_id())) + return now + NEXT_TIMER_MAX_DELTA; spin_lock(&base->lock); if (time_before_eq(base->next_timer, base->timer_jiffies)) base->next_timer = __next_timer_interrupt(base);