Commit 8a024690 authored by Tony Lindgren's avatar Tony Lindgren

ARM: OMAP: Manual merge after updating to 2.6.16

Manual merge after updating to 2.6.16
parent 667a3448
...@@ -488,7 +488,8 @@ unsigned long next_timer_interrupt(void) ...@@ -488,7 +488,8 @@ unsigned long next_timer_interrupt(void)
tvec_base_t *base; tvec_base_t *base;
struct list_head *list; struct list_head *list;
struct timer_list *nte; struct timer_list *nte;
unsigned long expires, hr_expires = MAX_JIFFY_OFFSET; unsigned long expires;
unsigned long hr_expires = MAX_JIFFY_OFFSET;
ktime_t hr_delta; ktime_t hr_delta;
tvec_t *varray[4]; tvec_t *varray[4];
int i, j; int i, j;
...@@ -940,6 +941,8 @@ static inline void update_times(void) ...@@ -940,6 +941,8 @@ static inline void update_times(void)
void do_timer(struct pt_regs *regs) void do_timer(struct pt_regs *regs)
{ {
jiffies_64++; jiffies_64++;
/* prevent loading jiffies before storing new jiffies_64 value. */
barrier();
update_times(); update_times();
softlockup_tick(regs); softlockup_tick(regs);
} }
...@@ -1351,8 +1354,8 @@ void __init init_timers(void) ...@@ -1351,8 +1354,8 @@ void __init init_timers(void)
#ifdef CONFIG_TIME_INTERPOLATION #ifdef CONFIG_TIME_INTERPOLATION
struct time_interpolator *time_interpolator; struct time_interpolator *time_interpolator __read_mostly;
static struct time_interpolator *time_interpolator_list; static struct time_interpolator *time_interpolator_list __read_mostly;
static DEFINE_SPINLOCK(time_interpolator_lock); static DEFINE_SPINLOCK(time_interpolator_lock);
static inline u64 time_interpolator_get_cycles(unsigned int src) static inline u64 time_interpolator_get_cycles(unsigned int src)
...@@ -1366,10 +1369,10 @@ static inline u64 time_interpolator_get_cycles(unsigned int src) ...@@ -1366,10 +1369,10 @@ static inline u64 time_interpolator_get_cycles(unsigned int src)
return x(); return x();
case TIME_SOURCE_MMIO64 : case TIME_SOURCE_MMIO64 :
return readq((void __iomem *) time_interpolator->addr); return readq_relaxed((void __iomem *)time_interpolator->addr);
case TIME_SOURCE_MMIO32 : case TIME_SOURCE_MMIO32 :
return readl((void __iomem *) time_interpolator->addr); return readl_relaxed((void __iomem *)time_interpolator->addr);
default: return get_cycles(); default: return get_cycles();
} }
......
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