timer fixes
Linus,
Please pull the latest timers-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git timers-fixes-for-linus
Thanks,
Ingo
------------------>
John Stultz (3):
rtc: Cleanup removed UIE emulation declaration
RTC: Propagate error handling via rtc_timer_enqueue properly
RTC: Properly handle rtc_read_alarm error propagation and fix bug
Konrad Rzeszutek Wilk (1):
acpi_pm: Clear pmtmr_ioport if acpi_pm initialization fails
Stephen Boyd (1):
hrtimers: Notify hrtimer users of switches to NOHZ mode
Uwe Kleine-König (1):
RTC: Remove Kconfig symbol for UIE emulation
drivers/clocksource/acpi_pm.c | 6 +++- drivers/rtc/Kconfig | 12 -------- drivers/rtc/interface.c | 61 +++++++++++++++++++++++++---------------- include/linux/rtc.h | 4 --- kernel/time/tick-sched.c | 7 +++-- 5 files changed, 46 insertions(+), 44 deletions(-)
drivers/clocksource/acpi_pm.c +5 -1
@@ -202,17 +202,21 @@ static int __init init_acpi_pm_clocksource(void)printk (KERN_INFO "PM-Timer had inconsistent results:" " 0x%#llx, 0x%#llx - aborting.\n" , value1, value2); + pmtmr_ioport =0 ;return -EINVAL ; }if (i ==ACPI_PM_READ_CHECKS ) {printk (KERN_INFO "PM-Timer failed consistency check " " (0x%#llx) - aborting.\n" , value1); + pmtmr_ioport =0 ;return -ENODEV ; } } -if (verify_pmtmr_rate () !=0 ) +if (verify_pmtmr_rate () !=0 ){ + pmtmr_ioport =0 ;return -ENODEV ; + }return clocksource_register_hz (&clocksource_acpi_pm,PMTMR_TICKS_PER_SEC );
drivers/rtc/Kconfig +0 -12
@@ -97,18 +97,6 @@ config RTC_INTF_DEV If unsure, say Y. -config RTC_INTF_DEV_UIE_EMUL - bool "RTC UIE emulation on dev interface" - depends on RTC_INTF_DEV - help - Provides an emulation for RTC_UIE if the underlying rtc chip - driver does not expose RTC_UIE ioctls. Those requests generate - once-per-second update interrupts, used for synchronization. - - The emulation code will read the time from the hardware - clock several times per second, please enable this option - only if you know that you really need it. - config RTC_DRV_TEST tristate "Test driver/device" help
drivers/rtc/interface.c +37 -24
143 lines not on this page · raw message
include/linux/rtc.h +0 -4
@@ -235,8 +235,6 @@ extern int rtc_irq_set_freq(struct rtc_device *rtc, struct rtc_task *task, int freq);extern int rtc_update_irq_enable (struct rtc_device *rtc,unsigned int enabled);extern int rtc_alarm_irq_enable (struct rtc_device *rtc,unsigned int enabled); -extern int rtc_dev_update_irq_enable_emul (struct rtc_device *rtc, -unsigned int enabled);void rtc_aie_update_irq (void *private);void rtc_uie_update_irq (void *private);
@@ -246,8 +244,6 @@ int rtc_register(rtc_task_t *task);int rtc_unregister (rtc_task_t *task);int rtc_control (rtc_task_t *t,unsigned int cmd,unsigned long arg); -void rtc_timer_enqueue (struct rtc_device *rtc,struct rtc_timer *timer); -void rtc_timer_remove (struct rtc_device *rtc,struct rtc_timer *timer);void rtc_timer_init (struct rtc_timer *timer,void (*f)(void * p),void * data);int rtc_timer_start (struct rtc_device *rtc,struct rtc_timer * timer,ktime_t expires,ktime_t period);
kernel/time/tick-sched.c +4 -3
@@ -642,8 +642,7 @@ static void tick_nohz_switch_to_nohz(void) }local_irq_enable (); -printk (KERN_INFO "Switched to NOHz mode on CPU #%d\n" , -smp_processor_id ()); +printk (KERN_INFO "Switched to NOHz mode on CPU #%d\n" ,smp_processor_id ()); }/*
@@ -795,8 +794,10 @@ void tick_setup_sched_timer(void) }#ifdef CONFIG_NO_HZ -if (tick_nohz_enabled) +if (tick_nohz_enabled) { ts->nohz_mode =NOHZ_MODE_HIGHRES ; +printk (KERN_INFO "Switched to NOHz mode on CPU #%d\n" ,smp_processor_id ()); + }#endif }#endif /* HIGH_RES_TIMERS */