aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/processor_idle.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index bbd066e7f85..d1676b1754d 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -164,7 +164,7 @@ static void lapic_timer_check_state(int state, struct acpi_processor *pr,
164 pr->power.timer_broadcast_on_state = state; 164 pr->power.timer_broadcast_on_state = state;
165} 165}
166 166
167static void lapic_timer_propagate_broadcast(void *arg) 167static void __lapic_timer_propagate_broadcast(void *arg)
168{ 168{
169 struct acpi_processor *pr = (struct acpi_processor *) arg; 169 struct acpi_processor *pr = (struct acpi_processor *) arg;
170 unsigned long reason; 170 unsigned long reason;
@@ -175,6 +175,12 @@ static void lapic_timer_propagate_broadcast(void *arg)
175 clockevents_notify(reason, &pr->id); 175 clockevents_notify(reason, &pr->id);
176} 176}
177 177
178static void lapic_timer_propagate_broadcast(struct acpi_processor *pr)
179{
180 smp_call_function_single(pr->id, __lapic_timer_propagate_broadcast,
181 (void *)pr, 1);
182}
183
178/* Power(C) State timer broadcast control */ 184/* Power(C) State timer broadcast control */
179static void lapic_timer_state_broadcast(struct acpi_processor *pr, 185static void lapic_timer_state_broadcast(struct acpi_processor *pr,
180 struct acpi_processor_cx *cx, 186 struct acpi_processor_cx *cx,
@@ -638,8 +644,7 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
638 working++; 644 working++;
639 } 645 }
640 646
641 smp_call_function_single(pr->id, lapic_timer_propagate_broadcast, 647 lapic_timer_propagate_broadcast(pr);
642 pr, 1);
643 648
644 return (working); 649 return (working);
645} 650}