提交 db77aa5f 编写于 作者: J Jan Glauber 提交者: Martin Schwidefsky

[S390] vtime: cleanup per_cpu usage.

Replace per_cpu(... , smp_processor_id()) with __get_cpu_var()
Signed-off-by: NJan Glauber <jan.glauber@de.ibm.com>
Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
上级 131a395c
...@@ -128,7 +128,7 @@ static inline void set_vtimer(__u64 expires) ...@@ -128,7 +128,7 @@ static inline void set_vtimer(__u64 expires)
S390_lowcore.last_update_timer = expires; S390_lowcore.last_update_timer = expires;
/* store expire time for this CPU timer */ /* store expire time for this CPU timer */
per_cpu(virt_cpu_timer, smp_processor_id()).to_expire = expires; __get_cpu_var(virt_cpu_timer).to_expire = expires;
} }
#else #else
static inline void set_vtimer(__u64 expires) static inline void set_vtimer(__u64 expires)
...@@ -137,7 +137,7 @@ static inline void set_vtimer(__u64 expires) ...@@ -137,7 +137,7 @@ static inline void set_vtimer(__u64 expires)
asm volatile ("SPT %0" : : "m" (S390_lowcore.last_update_timer)); asm volatile ("SPT %0" : : "m" (S390_lowcore.last_update_timer));
/* store expire time for this CPU timer */ /* store expire time for this CPU timer */
per_cpu(virt_cpu_timer, smp_processor_id()).to_expire = expires; __get_cpu_var(virt_cpu_timer).to_expire = expires;
} }
#endif #endif
...@@ -145,7 +145,7 @@ static void start_cpu_timer(void) ...@@ -145,7 +145,7 @@ static void start_cpu_timer(void)
{ {
struct vtimer_queue *vt_list; struct vtimer_queue *vt_list;
vt_list = &per_cpu(virt_cpu_timer, smp_processor_id()); vt_list = &__get_cpu_var(virt_cpu_timer);
/* CPU timer interrupt is pending, don't reprogramm it */ /* CPU timer interrupt is pending, don't reprogramm it */
if (vt_list->idle & 1LL<<63) if (vt_list->idle & 1LL<<63)
...@@ -159,7 +159,7 @@ static void stop_cpu_timer(void) ...@@ -159,7 +159,7 @@ static void stop_cpu_timer(void)
{ {
struct vtimer_queue *vt_list; struct vtimer_queue *vt_list;
vt_list = &per_cpu(virt_cpu_timer, smp_processor_id()); vt_list = &__get_cpu_var(virt_cpu_timer);
/* nothing to do */ /* nothing to do */
if (list_empty(&vt_list->list)) { if (list_empty(&vt_list->list)) {
...@@ -219,7 +219,7 @@ static void do_callbacks(struct list_head *cb_list) ...@@ -219,7 +219,7 @@ static void do_callbacks(struct list_head *cb_list)
if (list_empty(cb_list)) if (list_empty(cb_list))
return; return;
vt_list = &per_cpu(virt_cpu_timer, smp_processor_id()); vt_list = &__get_cpu_var(virt_cpu_timer);
list_for_each_entry_safe(event, tmp, cb_list, entry) { list_for_each_entry_safe(event, tmp, cb_list, entry) {
fn = event->function; fn = event->function;
...@@ -244,7 +244,6 @@ static void do_callbacks(struct list_head *cb_list) ...@@ -244,7 +244,6 @@ static void do_callbacks(struct list_head *cb_list)
*/ */
static void do_cpu_timer_interrupt(__u16 error_code) static void do_cpu_timer_interrupt(__u16 error_code)
{ {
int cpu;
__u64 next, delta; __u64 next, delta;
struct vtimer_queue *vt_list; struct vtimer_queue *vt_list;
struct vtimer_list *event, *tmp; struct vtimer_list *event, *tmp;
...@@ -253,8 +252,7 @@ static void do_cpu_timer_interrupt(__u16 error_code) ...@@ -253,8 +252,7 @@ static void do_cpu_timer_interrupt(__u16 error_code)
struct list_head cb_list; struct list_head cb_list;
INIT_LIST_HEAD(&cb_list); INIT_LIST_HEAD(&cb_list);
cpu = smp_processor_id(); vt_list = &__get_cpu_var(virt_cpu_timer);
vt_list = &per_cpu(virt_cpu_timer, cpu);
/* walk timer list, fire all expired events */ /* walk timer list, fire all expired events */
spin_lock(&vt_list->lock); spin_lock(&vt_list->lock);
...@@ -534,7 +532,7 @@ void init_cpu_vtimer(void) ...@@ -534,7 +532,7 @@ void init_cpu_vtimer(void)
/* enable cpu timer interrupts */ /* enable cpu timer interrupts */
__ctl_set_bit(0,10); __ctl_set_bit(0,10);
vt_list = &per_cpu(virt_cpu_timer, smp_processor_id()); vt_list = &__get_cpu_var(virt_cpu_timer);
INIT_LIST_HEAD(&vt_list->list); INIT_LIST_HEAD(&vt_list->list);
spin_lock_init(&vt_list->lock); spin_lock_init(&vt_list->lock);
vt_list->to_expire = 0; vt_list->to_expire = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册