Skip to content

Commit

Permalink
x86: build fix for !CONFIG_SMP
Browse files Browse the repository at this point in the history
Move reset_lazy_tlbstate into tlb_32.c, and define noop versions of
play_dead() in process_{32,64}.c when !CONFIG_SMP.

Signed-off-by: Alex Nixon <alex.nixon@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Alex Nixon authored and Ingo Molnar committed Sep 5, 2008
1 parent 5ab6d81 commit 913da64
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 16 deletions.
7 changes: 0 additions & 7 deletions arch/x86/kernel/cpu/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -714,10 +714,3 @@ void __cpuinit cpu_init(void)
mxcsr_feature_mask_init();
}

void reset_lazy_tlbstate(void)
{
int cpu = raw_smp_processor_id();

per_cpu(cpu_tlbstate, cpu).state = 0;
per_cpu(cpu_tlbstate, cpu).active_mm = &init_mm;
}
7 changes: 7 additions & 0 deletions arch/x86/kernel/process_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,13 @@ unsigned long thread_saved_pc(struct task_struct *tsk)
return ((unsigned long *)tsk->thread.sp)[3];
}

#ifndef CONFIG_SMP
static inline void play_dead(void)
{
BUG();
}
#endif

/*
* The idle thread. There's no useful work to be
* done, so just try to conserve power and have a
Expand Down
7 changes: 7 additions & 0 deletions arch/x86/kernel/process_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,13 @@ void exit_idle(void)
__exit_idle();
}

#ifndef CONFIG_SMP
static inline void play_dead(void)
{
BUG();
}
#endif

/*
* The idle thread. There's no useful work to be
* done, so just try to conserve power and have a
Expand Down
8 changes: 8 additions & 0 deletions arch/x86/kernel/tlb_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -241,3 +241,11 @@ void flush_tlb_all(void)
on_each_cpu(do_flush_tlb_all, NULL, 1);
}

void reset_lazy_tlbstate(void)
{
int cpu = raw_smp_processor_id();

per_cpu(cpu_tlbstate, cpu).state = 0;
per_cpu(cpu_tlbstate, cpu).active_mm = &init_mm;
}

9 changes: 0 additions & 9 deletions include/asm-x86/smp.h
Original file line number Diff line number Diff line change
Expand Up @@ -222,14 +222,5 @@ static inline int hard_smp_processor_id(void)

#endif /* CONFIG_X86_LOCAL_APIC */

#ifdef CONFIG_HOTPLUG_CPU
#ifdef CONFIG_X86_32
extern void reset_lazy_tlbstate(void);
#else
static inline void reset_lazy_tlbstate(void)
{ }
#endif /* CONFIG_X86_32 */
#endif

#endif /* __ASSEMBLY__ */
#endif
10 changes: 10 additions & 0 deletions include/asm-x86/tlbflush.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ static inline void native_flush_tlb_others(const cpumask_t *cpumask,
{
}

static inline void reset_lazy_tlbstate(void)
{
}

#else /* SMP */

#include <asm/smp.h>
Expand Down Expand Up @@ -151,6 +155,12 @@ struct tlb_state {
char __cacheline_padding[L1_CACHE_BYTES-8];
};
DECLARE_PER_CPU(struct tlb_state, cpu_tlbstate);

void reset_lazy_tlbstate(void);
#else
static inline void reset_lazy_tlbstate(void)
{
}
#endif

#endif /* SMP */
Expand Down

0 comments on commit 913da64

Please sign in to comment.