Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1481a3dd authored by Glauber Costa's avatar Glauber Costa Committed by Ingo Molnar
Browse files

x86: move cpu_exit_clear to process_32.c



Take it out of smpboot.c, and move it to process_32.c, closer
to its only user.

Signed-off-by: default avatarGlauber Costa <gcosta@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent b553a1e0
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -74,6 +74,22 @@ unsigned long thread_saved_pc(struct task_struct *tsk)

#ifdef CONFIG_HOTPLUG_CPU
#include <asm/nmi.h>

static void cpu_exit_clear(void)
{
	int cpu = raw_smp_processor_id();

	idle_task_exit();

	cpu_uninit();
	irq_ctx_exit(cpu);

	cpu_clear(cpu, cpu_callout_map);
	cpu_clear(cpu, cpu_callin_map);

	numa_remove_cpu(cpu);
}

/* We don't actually take CPU down, just spin without interrupts. */
static inline void play_dead(void)
{
+1 −18
Original line number Diff line number Diff line
@@ -181,7 +181,7 @@ static void map_cpu_to_logical_apicid(void)
	map_cpu_to_node(cpu, node);
}

static void numa_remove_cpu(int cpu)
void numa_remove_cpu(int cpu)
{
	cpu_2_logical_apicid[cpu] = BAD_APICID;
	unmap_cpu_to_node(cpu);
@@ -1227,23 +1227,6 @@ void __init native_smp_cpus_done(unsigned int max_cpus)

#ifdef CONFIG_HOTPLUG_CPU

#  ifdef CONFIG_X86_32
void cpu_exit_clear(void)
{
	int cpu = raw_smp_processor_id();

	idle_task_exit();

	cpu_uninit();
	irq_ctx_exit(cpu);

	cpu_clear(cpu, cpu_callout_map);
	cpu_clear(cpu, cpu_callin_map);

	numa_remove_cpu(cpu);
}
#  endif /* CONFIG_X86_32 */

static void remove_siblinginfo(int cpu)
{
	int sibling;
+1 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
#define _ASM_X86_32_NUMA_H 1

extern int pxm_to_nid(int pxm);
extern void numa_remove_cpu(int cpu);

#ifdef CONFIG_NUMA
extern void __init remap_numa_kva(void);
+0 −1
Original line number Diff line number Diff line
@@ -188,7 +188,6 @@ static inline int hard_smp_processor_id(void)
#endif /* CONFIG_X86_LOCAL_APIC */

#ifdef CONFIG_HOTPLUG_CPU
extern void cpu_exit_clear(void);
extern void cpu_uninit(void);
#endif