Merge branch 'clockevents/4.13-fixes' of http://git.linaro.org/people/daniel.lezcano/linux into timers/urgent

Pull clockevents fixes from Daniel Lezcano:

" - Fix error check against IS_ERR() instead of NULL for the timer-of code (Dan Carpenter)
- Fix infinite recusion with ftrace for the ARM architected timer (Ding Tianhong)
- Fix the error code return in the em_sti's probe function (Gustavo A. R. Silva)
- Fix Kconfig dependency for the pistachio driver (Matt Redfearn)
- Fix mem frame loop initialization for the ARM architected timer (Matthias Kaehlcke)"

Signed-off-by: Ingo Molnar <mingo@kernel.org>

Changed files
+12 -11
arch
arm64
include
drivers
+2 -2
arch/arm64/include/asm/arch_timer.h
··· 65 65 u64 _val; \ 66 66 if (needs_unstable_timer_counter_workaround()) { \ 67 67 const struct arch_timer_erratum_workaround *wa; \ 68 - preempt_disable(); \ 68 + preempt_disable_notrace(); \ 69 69 wa = __this_cpu_read(timer_unstable_counter_workaround); \ 70 70 if (wa && wa->read_##reg) \ 71 71 _val = wa->read_##reg(); \ 72 72 else \ 73 73 _val = read_sysreg(reg); \ 74 - preempt_enable(); \ 74 + preempt_enable_notrace(); \ 75 75 } else { \ 76 76 _val = read_sysreg(reg); \ 77 77 } \
+1 -1
drivers/clocksource/Kconfig
··· 262 262 263 263 config CLKSRC_PISTACHIO 264 264 bool "Clocksource for Pistachio SoC" if COMPILE_TEST 265 - depends on HAS_IOMEM 265 + depends on GENERIC_CLOCKEVENTS && HAS_IOMEM 266 266 select TIMER_OF 267 267 help 268 268 Enables the clocksource for the Pistachio SoC.
+1 -1
drivers/clocksource/arm_arch_timer.c
··· 1440 1440 * While unlikely, it's theoretically possible that none of the frames 1441 1441 * in a timer expose the combination of feature we want. 1442 1442 */ 1443 - for (i = i; i < timer_count; i++) { 1443 + for (i = 0; i < timer_count; i++) { 1444 1444 timer = &timers[i]; 1445 1445 1446 1446 frame = arch_timer_mem_find_best_frame(timer);
+6 -5
drivers/clocksource/em_sti.c
··· 305 305 irq = platform_get_irq(pdev, 0); 306 306 if (irq < 0) { 307 307 dev_err(&pdev->dev, "failed to get irq\n"); 308 - return -EINVAL; 308 + return irq; 309 309 } 310 310 311 311 /* map memory, let base point to the STI instance */ ··· 314 314 if (IS_ERR(p->base)) 315 315 return PTR_ERR(p->base); 316 316 317 - if (devm_request_irq(&pdev->dev, irq, em_sti_interrupt, 318 - IRQF_TIMER | IRQF_IRQPOLL | IRQF_NOBALANCING, 319 - dev_name(&pdev->dev), p)) { 317 + ret = devm_request_irq(&pdev->dev, irq, em_sti_interrupt, 318 + IRQF_TIMER | IRQF_IRQPOLL | IRQF_NOBALANCING, 319 + dev_name(&pdev->dev), p); 320 + if (ret) { 320 321 dev_err(&pdev->dev, "failed to request low IRQ\n"); 321 - return -ENOENT; 322 + return ret; 322 323 } 323 324 324 325 /* get hold of clock */
+2 -2
drivers/clocksource/timer-of.c
··· 128 128 const char *name = of_base->name ? of_base->name : np->full_name; 129 129 130 130 of_base->base = of_io_request_and_map(np, of_base->index, name); 131 - if (!of_base->base) { 131 + if (IS_ERR(of_base->base)) { 132 132 pr_err("Failed to iomap (%s)\n", name); 133 - return -ENXIO; 133 + return PTR_ERR(of_base->base); 134 134 } 135 135 136 136 return 0;