x86: make c_idle.work have a static address.
Currently, c_idle is declared in the stack, and thus, have no static address. Peter Zijlstra points out this simple solution, in which c_idle.work is initializated separatedly. Note that the INIT_WORK macro has a static declaration of a key inside. Signed-off-by: Glauber Costa <gcosta@redhat.com> Acked-by: Peter Zijlstra <pzijlstr@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
1650743cdc
commit
2b775a27c0
1 changed files with 1 additions and 1 deletions
|
@ -554,10 +554,10 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid)
|
||||||
int timeout;
|
int timeout;
|
||||||
unsigned long start_rip;
|
unsigned long start_rip;
|
||||||
struct create_idle c_idle = {
|
struct create_idle c_idle = {
|
||||||
.work = __WORK_INITIALIZER(c_idle.work, do_fork_idle),
|
|
||||||
.cpu = cpu,
|
.cpu = cpu,
|
||||||
.done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
|
.done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
|
||||||
};
|
};
|
||||||
|
INIT_WORK(&c_idle.work, do_fork_idle);
|
||||||
|
|
||||||
/* allocate memory for gdts of secondary cpus. Hotplug is considered */
|
/* allocate memory for gdts of secondary cpus. Hotplug is considered */
|
||||||
if (!cpu_gdt_descr[cpu].address &&
|
if (!cpu_gdt_descr[cpu].address &&
|
||||||
|
|
Loading…
Add table
Reference in a new issue