ACPI: fix for lapic_timer_propagate_broadcast()
I got following warning on ia64 box: In function 'acpi_processor_power_verify': 642: warning: passing argument 2 of 'smp_call_function_single' from incompatible pointer type This smp_call_function_single() was introduced by a commit f833bab87fca5c3ce13778421b1365845843b976: > @@ -162,8 +162,9 @@ > pr->power.timer_broadcast_on_state = state; > } > > -static void lapic_timer_propagate_broadcast(struct acpi_processor *pr) > +static void lapic_timer_propagate_broadcast(void *arg) > { > + struct acpi_processor *pr = (struct acpi_processor *) arg; > unsigned long reason; > > reason = pr->power.timer_broadcast_on_state < INT_MAX ? > @@ -635,7 +636,8 @@ > working++; > } > > - lapic_timer_propagate_broadcast(pr); > + smp_call_function_single(pr->id, lapic_timer_propagate_broadcast, > + pr, 1); > > return (working); > } The problem is that the lapic_timer_propagate_broadcast() has 2 versions: One is real code that modified in the above commit, and the other is NOP code that used when !ARCH_APICTIMER_STOPS_ON_C3: static void lapic_timer_propagate_broadcast(struct acpi_processor *pr) { } So I got warning because of !ARCH_APICTIMER_STOPS_ON_C3. We really want to do nothing here on !ARCH_APICTIMER_STOPS_ON_C3, so modify lapic_timer_propagate_broadcast() of real version to use smp_call_function_single() in it. Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> Acked-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
Родитель
f67538f81e
Коммит
918aae42aa
|
@ -164,7 +164,7 @@ static void lapic_timer_check_state(int state, struct acpi_processor *pr,
|
||||||
pr->power.timer_broadcast_on_state = state;
|
pr->power.timer_broadcast_on_state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lapic_timer_propagate_broadcast(void *arg)
|
static void __lapic_timer_propagate_broadcast(void *arg)
|
||||||
{
|
{
|
||||||
struct acpi_processor *pr = (struct acpi_processor *) arg;
|
struct acpi_processor *pr = (struct acpi_processor *) arg;
|
||||||
unsigned long reason;
|
unsigned long reason;
|
||||||
|
@ -175,6 +175,12 @@ static void lapic_timer_propagate_broadcast(void *arg)
|
||||||
clockevents_notify(reason, &pr->id);
|
clockevents_notify(reason, &pr->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void lapic_timer_propagate_broadcast(struct acpi_processor *pr)
|
||||||
|
{
|
||||||
|
smp_call_function_single(pr->id, __lapic_timer_propagate_broadcast,
|
||||||
|
(void *)pr, 1);
|
||||||
|
}
|
||||||
|
|
||||||
/* Power(C) State timer broadcast control */
|
/* Power(C) State timer broadcast control */
|
||||||
static void lapic_timer_state_broadcast(struct acpi_processor *pr,
|
static void lapic_timer_state_broadcast(struct acpi_processor *pr,
|
||||||
struct acpi_processor_cx *cx,
|
struct acpi_processor_cx *cx,
|
||||||
|
@ -638,8 +644,7 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
|
||||||
working++;
|
working++;
|
||||||
}
|
}
|
||||||
|
|
||||||
smp_call_function_single(pr->id, lapic_timer_propagate_broadcast,
|
lapic_timer_propagate_broadcast(pr);
|
||||||
pr, 1);
|
|
||||||
|
|
||||||
return (working);
|
return (working);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче