Commit f8a89fc0 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer fixes from Thomas Gleixner:
 "Two minimalistic fixes for 4.2 regressions:

   - Eric fixed a thinko in the timer_list base switching code caused by
     the overhaul of the timer wheel.  It can cause a cpu to see the
     wrong base for a timer while we move the timer around.

   - Guenter fixed a regression for IMX if booted w/o device tree, where
     the timer interrupt is not initialized and therefor the machine
     fails to boot"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  clocksource/imx: Fix boot with non-DT systems
  timer: Write timer->flags atomically
parents e525293d be3b0f9b
...@@ -462,6 +462,7 @@ void __init mxc_timer_init(unsigned long pbase, int irq, enum imx_gpt_type type) ...@@ -462,6 +462,7 @@ void __init mxc_timer_init(unsigned long pbase, int irq, enum imx_gpt_type type)
BUG_ON(!imxtm->base); BUG_ON(!imxtm->base);
imxtm->type = type; imxtm->type = type;
imxtm->irq = irq;
_mxc_timer_init(imxtm); _mxc_timer_init(imxtm);
} }
......
...@@ -807,8 +807,8 @@ __mod_timer(struct timer_list *timer, unsigned long expires, ...@@ -807,8 +807,8 @@ __mod_timer(struct timer_list *timer, unsigned long expires,
spin_unlock(&base->lock); spin_unlock(&base->lock);
base = new_base; base = new_base;
spin_lock(&base->lock); spin_lock(&base->lock);
timer->flags &= ~TIMER_BASEMASK; WRITE_ONCE(timer->flags,
timer->flags |= base->cpu; (timer->flags & ~TIMER_BASEMASK) | base->cpu);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment